https://school.programmers.co.kr/learn/courses/30/lessons/138476
이름이 귀여워서 선택한 귤 고르기
아래처럼 답을 적었는데
def solution(k, tangerine):
dic = {}
for t in tangerine :
if t in dic:
dic[t] += 1
else : dic[t] = 1
l = sorted(list(dic.values()),reverse=True)
type_idx = 0
cnt = 0
for t in l :
type_idx += 1
cnt += t
if(cnt >= k):
print(type_idx)
return type_idx
python 의 Counter함수를 사용하면 일일이 dictionary 를 초기화하지 않아도 됐다.
from collections import Counter
사용하면 아래와 같은 코드
from collections import Counter
def solution(k, tangerine):
l = sorted(Counter(tangerine).values(),reverse=True)
cnt = 0
for i,v in enumerate(l) :
cnt += v
if (cnt >= k): return i+1
여기서 Counter를 써보면 아래와 같이 Counter 타입으로 출력된다.
print(Counter(tangerine))
Counter({3: 2, 2: 2, 5: 2, 1: 1, 4: 1})
이것을 list 함수를 사용하여 바로 list로 변환했을 때는 key들을 모아 list로 만든 뒤 출력된다.
print(list(Counter(tangerine)))
[1, 3, 2, 5, 4]
'알고리즘' 카테고리의 다른 글
[softeer] 연탄의 크기 JAVA | ArrayList vs 배열 (int[]), Math.max(A,B) (0) | 2024.11.01 |
---|---|
[softeer] 근무시간, 바이러스 JAVA | scanner, substring, Integer.parseInt, Int scanner.nextInt(), (0) | 2024.10.31 |
[코딩테스트 합격자 되기 10] 집합 (1) | 2024.10.18 |
[프로그래머스] 영어 끝말잇기 python (0) | 2024.10.13 |
[코딩테스트 합격자 되기 09] 트리 (4) | 2024.10.13 |