IT recording...
[BOJ] 1713 후보 추천하기 - python 본문
https://www.acmicpc.net/problem/1713
import sys
def input():
return sys.stdin.readline().rstrip()
N = int(input())
M = input()
R = map(int,input().split())
candidate = {}
for i,r in enumerate(R):
#액자가 가득 찼을 때
if len(candidate) >= N and r not in candidate:
#추천수가 가장 적으면서, 오래된거 삭제하기(dictionary에서 pop)
sorted_cand = sorted(candidate.items(), key = lambda item: item[1][0])
min_like = sorted_cand[0][1][1]
delete_cand = sorted_cand[0]
same_like_cand = []
for cand in sorted_cand:
if cand[1][1] == min_like:
same_like_cand.append(cand[0]) #같은 애들 담음
#오래된거 뽑기
if len(same_like_cand) != 0:
sorted_old_cand = sorted(same_like_cand)
delete_cand = sorted_old_cand[0]
#dictionary에서 delete_cand삭제하고, stack에서도 pop하기
del candidate[delete_cand]
#추천 수 올리기
if r in candidate: #후보가 이미 있으면
candidate[r][0] += 1
else:
tmp = [1,i]
candidate[r] = tmp
#정답내기
answer = sorted(candidate.keys())
for a in answer:
print(str(a) + " ", end='')
얻어가는 것
- Dictionary Sorting하기
- dict.items → 각 딕셔너리의 item들을 반환한다.
- item[0]:key / item[1]:value
https://codechacha.com/ko/python-sorting-dict/my_dict = {'c': 3, 'a': 1, 'b': 2, 'e': 1, 'd': 2} #key를 기준으로 내림차순 정렬 sorted_dict = sorted(my_dict.items(), reverse = True) print(sorted_dict) >>> [('a', 1), ('b', 2), ('c', 3), ('d', 2), ('e', 1)] #value를 기준으로 내림차순 정렬 sorted_dict = sorted(my_dict.items(), key = lambda item: item[1], reverse = True) print(sorted_dict) >>> [('c', 3), ('b', 2), ('d', 2), ('a', 1), ('e', 1)]
- Dictionary 값 있는지 검사
- key in dict 사용
menu = {"ham" : 1, "cucumber" : -12, "egg" : 100} if "ham" in menu: print "네, 찾는 것이 있네요" else: print "그런 메뉴는 없습니다."
- Dictionary key 값 list로
dict.keys()
- print 줄바꿈 없애기
print("AngelPlayer", end='')
느낀점
"211003"
소요 시간 : 1H
- 파이썬의 핵심 자료구조 dictionary, list에 대해서 알아볼 수 있는 시간이었다.
'Algorithm' 카테고리의 다른 글
[BOJ] 1039 교환 - python (0) | 2021.12.02 |
---|---|
[BOJ] 1103 게임 - python (0) | 2021.12.02 |
[BOJ] 1932 정수 삼각형 - python (0) | 2021.12.02 |
[BOJ] 2098 외판원 순회 - python (1) | 2021.12.02 |
[BOJ] 1062 가르침 - python (0) | 2021.12.02 |
Comments