-
[백준] 1620. 나는야 포켓몬 마스터 이다솜 - Python3Problem Solving 2023. 2. 5. 02:30
문제 설명
포켓몬 도감에 수록되어 있는 포켓몬의 수 N과 맞춰야하는 문제의 개수 M이 한 줄에 주어지고,
N줄에 한 개씩 포켓몬의 이름이 주어진 후 M개의 문제(포켓몬 번호 or 이름)이 주어질 때,
문제에 해당하는 포켓몬의 번호 혹은 이름을 맞추는 문제
https://www.acmicpc.net/problem/1620
1620번: 나는야 포켓몬 마스터 이다솜
첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면
www.acmicpc.net
- 알고리즘 분류 - 자료구조, 해시를 사용한 집합과 맵
- 난이도 - 실버4
접근 방법
주어진 입력값으로 {번호:이름}의 사전을 만들고, 이를 뒤집은 {이름:번호} 사전을 하나 더 만들어서,
주어진 문제가 이름이라면 뒤집은 사전의 value를, 아니라면 원래 사전의 value를 print 한다.
답안 코드
메모리: 54616 KB , 시간: 248ms, 코드 길이: 456 B
import sys input = sys.stdin.readline n,m = map(int, input().split()) # 도감 완성 book = {} for i in range(1, n+1): name = input().strip('\n') book[i] = name book_reverse = {k:v for v,k in book.items()} # 문제 맞히기 for i in range(m): q = input().strip('\n') if q in book_reverse: # 번호가 주어진 경우 print(book_reverse[q]) else: # 이름이 주어진 경우 q = int(q) print(book[q])
'Problem Solving' 카테고리의 다른 글
[백준] 14425. 문자열 집합 - Python3 (0) 2023.02.06 [백준] 9375. 패션왕 신해빈 - Python3 (0) 2023.02.06 [프로그래머스] 베스트앨범 - Python3 (0) 2023.02.01 [프로그래머스] 위장 - Python3 (0) 2023.01.31 [프로그래머스] 전화번호 목록 - Python3 (0) 2023.01.30