코딩/공부

[Python] 백준 20186번 - 수 고르기

취미니스트 2024. 3. 16. 18:58
728x90
반응형

문제

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

 

두 정수 n(숫자 개수), k(고를 숫자 수)를 입력.

n개만큼 숫자를 입력받고, 해당 숫자들을 내림차순으로 정렬된 리스트로 저장.

n, k = map(int, input().split())
nums = sorted(list(map(int, input().split())), reverse=True)

 

리스트의 맨 앞부터 k개 만큼을 요소 - 인덱스를 계산하고, 이들의 합을 저장 후 출력.

add = 0
for i in range(k):
    add += nums[i] - i
print(add)

 

generate 문법과 sum을 이용하여 간략화 시킬 수 있음.

print(sum([n - i for i, n in enumerate(nums[:k])]))

 

 

전체 코드.

n, k = map(int, input().split())
nums = sorted(list(map(int, input().split())), reverse=True)
add = 0
for i in range(k):
    add += nums[i] - i
print(add)

 

728x90
반응형