-
명예의 전당 (1)코딩테스트 연습 2023. 11. 27. 10:58
문제 설명
제한사항
입출력 예 및 설명
문제 풀이
def solution(k, score): answer = [] score_list = [] for i, s in enumerate(score): score_list.append(s) score_list.sort() if i < k: min_score = min(score_list) else: min_score = min(score_list[-k:]) answer.append(min_score) return answer
채점결과
다른 사람 풀이
def solution(k, score): q = [] answer = [] for s in score: q.append(s) if (len(q) > k): q.remove(min(q)) answer.append(min(q)) return answer
코드가 훨씬 간결하다! 나는 score를 담고 있는 list의 길이가 k보다 클 때 list[:-k] 라는 범위를 잡아서 그 범위의 min값을 추출을 했다. 근데 그렇게 하지 않고 score를 담고 있는 list를 (여기서는 q) 길이가 k보다 클 때 min값을 remove해주면 되겠다...! 그럼 항상 k범위 내에서 min을 추출할 수 있다.
다른 사람 풀이 채점결과
이렇게 푸는 게 속도도 빠르다.
문제 출처 : 프로그래머스
'코딩테스트 연습' 카테고리의 다른 글
숫자 변환하기 (0) 2023.12.04 뒤에 있는 큰 수 찾기 (2) 2023.11.29 옹알이 (2) (0) 2023.11.18 문자열 나누기 (0) 2023.11.17 개인정보 수집 유효기간(2023 KAKAO BLIND RECRUITMENT) (1) 2023.11.16