애플파이썬
[프로그래머스] Lv.2 귤 고르기 (파이썬) 본문
https://school.programmers.co.kr/learn/courses/30/lessons/138476
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 설명
경화는 과수원에서 귤을 수확했습니다. 경화는 수확한 귤 중 'k'개를 골라 상자 하나에 담아 판매하려고 합니다. 그런데 수확한 귤의 크기가 일정하지 않아 보기에 좋지 않다고 생각한 경화는 귤을 크기별로 분류했을 때 서로 다른 종류의 수를 최소화하고 싶습니다.
예를 들어, 경화가 수확한 귤 8개의 크기가 [1, 3, 2, 5, 4, 5, 2, 3] 이라고 합시다. 경화가 귤 6개를 판매하고 싶다면, 크기가 1, 4인 귤을 제외한 여섯 개의 귤을 상자에 담으면, 귤의 크기의 종류가 2, 3, 5로 총 3가지가 되며 이때가 서로 다른 종류가 최소일 때입니다.
경화가 한 상자에 담으려는 귤의 개수 k와 귤의 크기를 담은 배열 tangerine이 매개변수로 주어집니다. 경화가 귤 k개를 고를 때 크기가 서로 다른 종류의 수의 최솟값을 return 하도록 solution 함수를 작성해주세요.
제한사항
- 1 ≤ k ≤ tangerine의 길이 ≤ 100,000
- 1 ≤ tangerine의 원소 ≤ 10,000,000
나의 풀이들...
def solution(k, tangerine):
cum = 0
tangerine.sort()
sizes = list(set(tangerine))
s_count = []
for s in sizes:
s_count.append(tangerine.count(s))
s_count.sort(reverse=True)
for i in range(len(s_count)):
if cum < k:
cum += s_count[i]
else:
return i
- 1트 ! 테스트했을 때는 다 맞았는데 채점하니까 61점짜리 코드였다 ㅠㅠ (시간초과 + 틀린 답 조금)
- 그래서 마지막에 계산해주는 부분을 조금 수정해봤다. 딱 맞게 계산될 때가 반영이 안되는 것 같았다.
def solution(k, tangerine):
cum = 0
tangerine.sort()
sizes = list(set(tangerine))
s_count = []
for s in sizes:
s_count.append(tangerine.count(s))
s_count.sort(reverse=True)
for i, c in enumerate(s_count):
cum += c
if cum >= k:
return i+1
- 2트 ! 82점짜리 코드... (틀린 답은 다 맞아졌지만 시간 초과가 여전히 뜬다...)
- 딱 맞을 때도 정확하게 답이 나오게 됐고, i 부터 시작이기 때문에 i + 1 값을 return
from collections import Counter
def solution(k, tangerine):
cum = 0
count = Counter(tangerine)
sorted_count = sorted(count.values(), reverse=True)
for i, c in enumerate(sorted_count):
cum += c
if cum >= k:
return i + 1
- 3트 ! 아무래도 귤 종류별 갯수 셀 때 시간이 오래 걸린 거 같은데,, 도저히 어떻게 해결해야 되는지 ㅠㅠ
- 근데 딕셔너리 쓰면 ! 속도가 빨라지는 거 같더라구용 ~
- 일일히 구해주는 방법도 있지만 Counter라는 라이브러리가 있길래 사용해봤다
- 굉장히 간편하구,, 코테에서도 쓸 수 있겠지 ~?!

'파이썬 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv.2 영어 끝말잇기 (파이썬) (0) | 2025.03.28 |
---|---|
[프로그래머스] Lv.2 멀리 뛰기 (파이썬) (0) | 2025.03.28 |
[프로그래머스] Lv.2 타겟 넘버 (파이썬) _ 깊이/너비 우선탐색(DFS/BFS) (0) | 2025.03.27 |
[프로그래머스] Lv.2 정수삼각형 (파이썬) _ 동적프로그래밍(DP) (0) | 2025.03.27 |
[프로그래머스] Lv.2 점프와 순간 이동 (파이썬) (0) | 2025.03.25 |