첫번째 코드
정답을 리스트에 넣어 sorting을 진행하면 가장 마지막 원소가 가장 작은 값이겠지?
그러면 해당 값만 삭제하고 마지막값을 출력하면 그게 가장 작은 값일꺼다.
근데 k보다 작을때는 따로 해야하니까 그냥 따로 작성하자
def solution(k, score):
answer = []
score_in = []
for i in range(k):
score_in.append(score[i])
score_in.sort(reverse = True)
answer.append(score_in[-1])
for i in range(k, len(score)):
score_in.append(score[i])
score_in.sort(reverse = True)
del score_in[-1]
answer.append(score_in[-1])
return answer
런타임 에러?
두번째 코드
for 문을 하나로 합치자!
이때 중요한건 처음부터 k 번까지는 다 들어가야하니까
정답의 길이가 k보다 클 때만 마지막 원소를 제거하는 방향으로!
def solution(k, score):
answer = []
score_in = []
for i in range(len(score)):
score_in.append(score[i])
score_in.sort(reverse = True)
if len(score_in) > k:
del score_in[-1]
answer.append(score_in[-1])
return answer
처음에 range 부분에 k를 넣고 오류가 떠서...응? 했는데
디버깅으로 확인한 결과...나는 멍청이였어...score 만큼 해야지 score의 모든 리스트가 들어가지!
통과!
링크
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
콜라츠 추측 (0) | 2024.04.01 |
---|---|
콜라 문제 (2) | 2024.03.31 |
부족한 금액 계산하기 (1) | 2024.03.30 |
핸드폰 번호 가리기 (0) | 2024.03.29 |
과일 장수 (0) | 2024.03.25 |