본문 바로가기
프로그래머스/Python

[프로그래머스] 귤 고르기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2023. 7. 14.
728x90
반응형

 

 

프로그래머스

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

programmers.co.kr

 

1. 문제 설명

2. 풀이과정

  1. 각 크기별 개수를 저장할 딕셔너리를 생성한다. d = {}
  2. 입력받은 귤을 하나씩 추출한다. for i in tangerine
  3. 만약 이미 딕셔너리에 해당 크기가 존재하면 개수에 1을 더한다. if (i in d): d[i] += 1
  4. 반면에 해당 크기가 처음 나왔으면 개수를 1로 하여 추가한다. else: d[i] = 1
  5. 전체 귤의 개수를 크기별로 모두 세었다면 해당 딕셔너리를 개수(value)를 기준으로 내림차순 정렬한다. 개수가 많은 값부터 귤을 추가해야 최소한의 종류로 판매할 수 있다. d = sorted(d.items(), key = lambda x: x[1], reverse = True)
  6. 내림차순 정렬한 딕셔너리를 앞에서부터 하나씩 추출한다. for i in d
  7. 판매할 귤의 개수에서 추출한 귤의 개수를 빼준다. k -= i[1]
  8. 크기 종류가 추가되었으므로 결과에 1을 더한다. answer += 1
  9. 만약 판매할 귤의 개수가 남지 않았다면 종료한다. if (k <= 0): break
반응형

3. 소스코드

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

    for i in d:
        k -= i[1]
        answer += 1
        if (k <= 0):
            break
                
    return answer
728x90
반응형