코딩테스트 연습 - 귤 고르기 | 프로그래머스 스쿨 (programmers.co.kr)
나의 풀이
.
모범 답안
def solution(k, tangerine):
answer = 0
a={}
for i in tangerine:
if i in a:
a[i]+=1
else:
a[i]=1
a = dict(sorted(a.items(), key=lambda x: x[1], reverse=True))
for i in a:
if k<=0:
return answer
k-=a[i]
answer+=1
return answer
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
collections 모듈의 Counter 클래스
Counter 생성자는 여러 형태의 데이터를 인자로 받음. 먼저 중복된 데이터가 저장된 배열을 인자로 넘기면 각 원소가 몇 번씩 나오는지 저장된 객체를 얻음.
>>> Counter(["hi", "hey", "hi", "hi", "hello", "hey"])
Counter({'hi': 3, 'hey': 2, 'hello': 1})
Counter 생성자에 문자열을 인자로 넘기면 각 문자가 문자열에서 몇 번씩 나타나는지를 알려주는 객체가 반환됨.
>>> Counter("hello world")
Counter({'h': 1, 'e': 1, 'l': 3, 'o': 2, ' ': 1, 'w': 1, 'r': 1, 'd': 1})
참조
파이썬 collections 모듈의 Counter 사용법 | Engineering Blog by Dale Seo
파이썬 collections 모듈의 Counter 사용법
Engineering Blog by Dale Seo
www.daleseo.com
'코딩테스트 > programmers (python)' 카테고리의 다른 글
★ Programmers / 2단계 / 괄호 회전하기 / python (0) | 2024.02.06 |
---|---|
Programmers / 2단계 / 연속 부분 수열 합의 개수 / python (0) | 2024.02.06 |
Programmers / 2단계 / 예상 대진표 / python (0) | 2024.02.02 |
Programmers / 2단계 / 점프와 순간 이동 / python (0) | 2024.01.31 |
[ 스택 / 큐 ] Programmers / 올바른 괄호 / python (0) | 2024.01.31 |