반응형
https://www.acmicpc.net/problem/11652
[ 처음 코드 - 시간 초과 ]
n = int(input())
cards = [int(input()) for _ in range(n)]
print(max(cards, key = cards.count))
[ 최종 코드 ]
시간 초과가 나서 찾아보니 딕셔너리를 쓰면 시간 초과가 해결된다고 해서 딕셔너리를 사용한 코드로 바꾸었다! 딕셔너리로 해도 시간초과가 난다면 PyPy3 로 해보면 통과될 것이다
n = int(input())
cards = {}
for _ in range(n):
c = int(input())
# 키 값 체크 후 카드개수 업데이트
if c in cards: cards[c] += 1
else: cards[c] = 1
cards = sorted(cards.items(), key=lambda x: (-x[1], x[0])) # 카드개수 내림차순 -> 카드값 오름차순 정렬
print(cards[0][0])
1. 카드 값을 입력받는다.
2. 키 값 체크 후 카드 개수를 업데이트한다.
2-1. 키 값이 있다면 기존 카드 개수에 +1
2-2. 키 값이 없다면 카드 개수는 1
3. cards 를 정렬한다. 카드 개수 기준으로 내림차순 정렬 후 카드값 기준으로 오름차순 정렬한다.
4. 결과를 출력한다.
반응형
'Algorithm > 백준' 카테고리의 다른 글
[백준/Python] 시리얼 번호 (0) | 2021.10.31 |
---|---|
[백준/Python] 절대값 힙 (0) | 2021.10.23 |
[백준/Python] 요세푸스 문제 0 (0) | 2021.10.10 |
[백준/Python] 후위 표기식2 (0) | 2021.10.07 |
[백준/Python] 괄호 (0) | 2021.10.06 |