ALGORITHM/PYTHON

백준 BAEKJOON 20299번 3대 측정 [PYTHON/파이썬]

칼코
반응형

 

백준 BAEKJOON 20299번 3대 측정 [PYTHON/파이썬]


<문제 출처>

https://www.acmicpc.net/problem/20299

 

20299번: 3대 측정

첫째 줄에 정수 $N$, $K$, $L$이 주어진다. $N$은 팀의 수, $K$는 팀원 $3$명의 레이팅 합에 대한 클럽 가입 조건, $L$은 개인 레이팅에 대한 클럽 가입 조건이다. ($1 \leq N \leq 500\ 000$, $0 \leq K \leq 12\ 000$, $

www.acmicpc.net

 

 

 

<풀이>

모든 팀원의 레이팅이 L 이상이고, 팀원 세 명의 레이팅의 합이 K 이상

위의 조건을 확인하여 문제를 풀었다.

 

마지막 줄에 리스트에 append 대신 extend를 사용했는데

append와 extend 차이는

list.append(x)는 리스트 끝에 x 1개를 그대로 넣고

list.extend(iterable)는 리스트 끝에 가장 바깥쪽 iterable의 모든 항목을 넣는다.

 

아래의 코드를 확인하면 쉽게 이해 할 수 있다.

 

# append 와 extend 차이

x = ['a', 'b', 'c']
y = ['d', 'e']
x.append(y)
# 출력 : ['a', 'b', 'c', ['d', 'e']]

x = ['a', 'b', 'c']
y = ['d', 'e']
x.extend(y)
# 출력 : ['a', 'b', 'c', 'd', 'e']

 

 

 

<코드>

import sys
input = sys.stdin.readline

N, K, L = map(int, input().split())
cnt = 0 # 클럽 가입이 가능한 팀원 수
res = []

for _ in range(N) :
    team = list(map(int, input().split()))
    check = True	# 조건 판별 변수

    for i in team :
        if i < L :
            check = False
            break
    if check :
        if sum(team) >= K :
            res.extend(team)
            cnt += 1

print(cnt)
print(*res)	# *list 를 통해 한 줄 출력

 

 

반응형