알고리즘 공부/코딩테스트(프로그래머스)

[프로그래머스 Level 2] 귤 고르기 (Python 파이썬) 풀이 방법

yepppi 2023. 1. 5. 13:45
반응형
SMALL

오늘은 코테준비할 시간이 없을 줄 알았는데, 생각보다 API 구현이 일찍 끝나 여유가 생겼다. 저녁 때는 이속우화 본점을 예약해놔서 오늘 공부는 한두시간 정도 일찍 마치기로 했다. 저녁 전에 프로젝트 회의도 있고, 자취방 청소도 해야 하고 원룸 재계약도 하러 가야 해서 바쁘다.

 

 

프로그래머스 <귤 고르기> 문제 보기

https://school.programmers.co.kr/learn/courses/30/lessons/42587

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

프로그래머스 <귤 고르기> 문제 풀이

def solution(k, tangerine):
    answer = 0
    tangerines = 0
    dic = {}
    
    for i in tangerine:
        if i in dic:
            dic[i] += 1
        else:
            dic[i] = 1
    dic = sorted(dic.items(), key=lambda x:x[1], reverse=True)
    
    i=0
    while True:
        answer += 1
        tangerines += dic[i][1]
        if tangerines >= k:
            return answer
        i += 1
    
    return answer

기본으로 주어지는 answer 변수에 가짓수를 담아 반환했다. 딕셔너리를 통해 숫자별로 개수를 세어 묶어준 후 내림차순으로 정렬하여, 최소 가짓수를 위해 큰 값부터 더하다 k보다 커지는 순간 answer을 반환하였다.

 

 

 

풀이가 워낙 다양한 문제였는데, 나와 똑같이 푸신 분을 발견해서 살짝 놀랐다. 또, tangerine 리스트를 딕셔너리로 바꿔주는 코드를 collections의 Counter를 사용하신 분도 계셨다. Level 2 문제 중에서도 굉장히 쉬운 편인 것 같다.

 

귤이 먹고 싶어서 이 문제를 고른 건 아니다

 

반응형
LIST