[python 파이썬] 백준 11652번 카드
2021. 1. 28. 02:39ㆍAlgorithm/BOJ
반응형
1. 문제를 제대로 읽지 않았다.
최대값이 여러개일 경우 작은 수를 출력하라는 문구를 놓쳤다.
2. 두번째 시도 - collections 모듈의 Counter클래스를 사용한 방법 - 틀림
from collections import Counter # collections모듈의 Counter 클래스
import sys
N = int(sys.stdin.readline())
numList=[int(sys.stdin.readline()) for _ in range(N)]
count = Counter(numList)
print(count.most_common(1)[0][0])
from collections import Counter
n = int(input())
numList=[]
for i in range(n):
num = int(input())
numList.append(num)
cntNumList = Counter(numList)
maxList= [k for k,v in cntNumList.items() if max(cntNumList.values()) == v]
min(maxList)
모듈을 사용해서 틀린 걸까..?라는 의심이 들기 시작했다.
3. 세번째 시도 - 모듈 사용하지 않은 방법 - 맞음!
n = int(input())
dic={}
for _ in range(n):
tmp = int(input())
if tmp in dic:
dic[tmp]+=1
else:
dic[tmp]=1
dic = sorted(dic.items(),key=lambda x:(-x[1], x[0]))
# 카드개수를 기준으로 먼저 내림차순으로 정렬후 카드개수가 같으면 카드값을 기준으로 오름차순 정렬되게 구현했다
# x[1]-밸류는 내림차순 x[0] - 키는 오름차순 (-x[1], x[0]) 1순위 밸류 2순위 키
print(dic[0][0])
이걸로 하니 됐다 ..!
아직 딕셔너리 쓰는 것 , 람다식 쓰는 것 , 람다식에 정렬 적용하는 것 등등 낯설다.
문제 많이 풀어보면 적응하겠지!
<참고자료>
람다식에 sort적용
반응형
'Algorithm > BOJ' 카테고리의 다른 글
[python 파이썬] 백준 2776번 암기왕 (0) | 2021.01.29 |
---|---|
[python 파이썬] 백준 10951번 A+B-4 (0) | 2021.01.28 |
[python 파이썬] 백준 1431번 시리얼 번호 (0) | 2021.01.28 |
[python 파이썬] 백준 11021번 A+B-7 (0) | 2021.01.28 |
[python 파이썬] 백준 15552번 빠른 A+B (0) | 2021.01.28 |