[BOJ] 20186 수 고르기 (Python)

이지예·2022년 4월 13일
0

백준

목록 보기
6/20

코드

import sys
n,k=map(int,sys.stdin.readline().split())
numli=sorted(list(map(int,sys.stdin.readline().split())))
sum=0
for i in range(1,k+1):
    sum+=numli[-i]-i+1
print(sum)

풀이

N개의 자연수 중 큰 숫자 K개를 고르고 그 합에 0~K-1의 수를 빼면 되는 문제다. 실버3문제는 처음 풀어봐서 어려울 줄 알았는데 생각보다 금방 풀리는 문제였다. 코드도 거의 익숙한 함수들을 썼다. 처음 써보는 함수도 있었는데 바로 sorted 함수이다.
나는 sort함수만 써봐서 새로운 변수에 sort한 기존 변수를 넣고 값을 바꿨더니 변수 두개 모두 값이 변해서 혼란스러웠다. 근데 알고봤더니 파이썬은 다른 언어와는 다르게 변수가 값을 가지는게 아니라 메모리에 저장된 해당 값의 주소를 가리키는거라서, 서로 다른 주소를 가리키는 다른 변수를 만들고 싶으면 sorted()라는 함수를 써야했다.

히히👏👏

0개의 댓글