몽상실현개발주의

[BOJ] 11652 / 카드 / Python 파이썬 본문

Algorithm PS/BOJ

[BOJ] 11652 / 카드 / Python 파이썬

migrationArc 2021. 5. 23. 14:01

[BOJ] 11652 / 카드 / Python 파이썬

[BOJ] 11652 / 카드 / Python 파이썬

https://www.acmicpc.net/problem/11652

 

11652번: 카드

준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지

www.acmicpc.net

 

풀이

중복 되는 숫자의 갯수를 처리하기 위하여 Dictionary 를 사용하였다.

 

그리고 조건에 맞추어 정렬하기 위하여, Dictionary 의 key 와 value 를 tuple 로 받아오는 items() method 와

Lambda 를 사용 하였다.

 

Python Dictionary items()

The items() method returns a view object that displays a list of dictionary's (key, value) tuple pairs.

sales = { 'apple': 2, 'orange': 3, 'grapes': 4 }
print(sales.items())
-> dict_items([('apple', 2), ('orange', 3), ('grapes', 4)])

 

 

import sys

N = int(sys.stdin.readline())
nums = {}
for _ in range(N):
    num = int(sys.stdin.readline())
    if num not in nums:
        nums[num] = 1
    else:
        nums[num] += 1
        
nums = sorted(nums.items(), key = lambda x: (x[1], -x[0]))

print(nums[-1][0])

 

 

※ sorted() 의 return 은 Array 이므로, dictionary 에서 tuple 을 원소로 갖는 Array 로 정렬되어 반환 된다.

Comments