알고리즘
[프로그래머스] 귤 고르기
j9972
2023. 7. 13. 13:52
728x90
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/138476
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
2. 접근
1. 나는 dict() 을 통해서 귤의 크기에 따라서 개수를 내림 차순 정렬을 하고 k랑 cnt의 개수를 비교해서 ans를 구했다
: dict() -> 내림차순 정렬 -> value값 만큼 cnt를 증가시켜서 k랑 비교 -> ans 도출
2. Counter() 라는 메소드를 사용하면 dict() 없이도 가능하다,,,
3. 풀이
# dict()을 사용한 방법
def solution(k, t):
cnt = 0
ans = 0
dic = {}
for i in t:
if i not in dic:
dic[i] = 1
else:
dic[i] += 1
sorted_dic = sorted(dic.items(), key=lambda x: x[1], reverse=True)
for i in sorted_dic:
cnt += i[1]
ans += 1
if cnt >= k:
break
return ans
# dict()을 쓰지 않고 Counter() 사용해서 풀기
import collections
def solution(k, tangerine):
answer = 0
cnt = collections.Counter(tangerine)
for v in sorted(cnt.values(), reverse = True):
k -= v
answer += 1
if k <= 0:
break
return answer