반응형
https://school.programmers.co.kr/learn/courses/30/lessons/138476
정렬 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
1. 정답 변수를 선언 하고 0으로 초기화합니다.
2. 귤 크기와 개수를 저장할 tangerine_map을 선언 후 적절히 초기화합니다.
3. 귤의 개수에 대해 내림차순으로 정렬해줍니다.
* k이상 개수만큼 담기만하면 되므로 최소의 종류로 담기 위해서는 해당 정렬이 필요합니다.
📔 풀이과정
여태 담은 귤의 개수 sum을 선언 후 0으로 초기화합니다. tangerine_map의 원소에 대해 순회하며 다음을 진행합니다.1. 귤 종류가 증가했으므로 answer를 1증가시켜줍니다.
2. 해당 귤의 개수를 sum에 누적해 더해줍니다.
* k개수 이상이라면 논리적으로 k개에 딱 맞게 담으면 되며 이는 answer값과 무관하므로 그냥 더해줍니다.
3. k이상이라면 break해줍니다.
📔 정답 출력 | 반환
answer를 반환합니다.
📕 Code
📔 Python3
def solution(k, tangerine):
answer = 0
tangerine_map = {}
for t in tangerine:
tangerine_map[t] = tangerine_map.get(t,0) + 1
tangerine_map = sorted(tangerine_map.items(), key = lambda x: x[1], reverse=True)
sum = 0
for _, num in tangerine_map:
answer += 1
sum += num
if sum >= k:
break
return answer
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > Sorting' 카테고리의 다른 글
(Python3) - 프로그래머스(PCCE 기출문제): 10번 데이터 분석 (0) | 2024.11.10 |
---|---|
(Python3) - 프로그래머스(코딩테스트 입문) : 특이한 정렬 (0) | 2024.11.03 |
(Python3) - 프로그래머스(코딩테스트 입문) : 최댓값 만들기 (2) (0) | 2024.10.31 |
(Python3) - 프로그래머스(코딩테스트 입문) : 최댓값 만들기(1) (0) | 2024.10.28 |
(Python3) - 프로그래머스(코딩 기초 트레이닝) : 전국 대회 선발 고사 (0) | 2024.10.20 |