ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 명예의 전당 (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
Designed by Tistory.