[백준] 11652:카드 / 파이썬 / 정렬 / 딕셔너리

ChaeYuuu·2024년 7월 14일

Algorithm

목록 보기
6/7

💻 문제

정렬에 해당하는 백준 11652:카드 문제


💡 코드

cardDic={}
N=int(input())

for _ in range(N):
    card = int(input())
    if card in cardDic:
        cardDic[card] += 1
    else:
        cardDic[card] = 1

ans = sorted(cardDic.items(), key=lambda x: (-x[1],x[0]))
print(ans[0][0])

📚 해결 과정

문제를 보고 같은 번호를 가진 카드의 개수대로 정렬 후, 카드 번호의 숫자대로 정렬해야한다고 생각이 들었다.

파이썬에서 Dictionary 자료형을 제공해주기 때문에 이를 사용하면 되었다.

+ 딕셔너리 자료형이란?

key와 value의 쌍으로 이루어진 자료형으로 일반적으로 key에는 고유한 값이 들어가 value를 식별할 수 있다.
(기회가 된다면 딕셔너리 자료형에 대해서 정리해보는 시간을 가지겠다.)

아무튼 딕셔너리 자료형을 사용해서 key를 카드 번호로, value를 카드 개수로 지정하여 이미 존재하는 카드라면 value의 값을 1 증가 시키고 없다면 1로 지정하였다.

추가로, 파이썬에서 정렬할 때 sort나 sorted 를 사용하면 된다고 정리한 적이 있는데 특이하게 딕셔너리에서는 sorted만 사용이 가능하다 !!
또, sorted 함수를 사용할 때 어떤 값을 우선순위로 둘지 제대로 정하자
여기서는 카드 개수가 많은 순서대로 먼저 정렬해야하므로 value 값을 내림차순으로 정렬하고 같은 값이 존재할 시 카드 번호를 오름차순으로 정렬해야한다.

profile
아무것도 머르게떠염

0개의 댓글