Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |
Tags
- level0
- level2
- 구현
- 운영체제
- 스택
- BFS
- 다이나믹 프로그래밍
- 파이썬
- dfs
- 다익스트라
- 브루트포스
- 수학
- BOJ
- N과M
- 재귀
- 프로그래머스
- 백준
- 그리디
- MYSQL
- level1
- programmers
- DP
- 가상메모리
- 힙
- python
- dict
- 딕셔너리
- level3
- 가상메모리 관리
- 코딩테스트
Archives
- Today
- Total
동캄의 코딩도장
백준 1620 [나는야 포켓몬 마스터 이다솜] 파이썬 본문
https://www.acmicpc.net/problem/1620
# 백준 1620 나는야 포켓몬 마스터 이다솜
import sys
input=sys.stdin.readline
N,M=map(int,input().split())
mon_to_digit={}
digit_to_mon={}
for i in range(1,N+1):
monster=str(input().rstrip())
mon_to_digit[monster]=i
digit_to_mon[str(i)]=monster
for _ in range(M):
val=input().rstrip()
if mon_to_digit.get(val):
print(mon_to_digit[val])
else:
print(digit_to_mon[val])
딕셔너리를 두개 사용해서 양쪽으로 참조가 가능하도록 구성하였다. 또, 딕셔너리의 get 함수를 이용해서 딕셔너리에 해당 key 값이 존재하는지 확인하였다.
풀고나서, 찾아보니 더 좋은 풀이를 푸신 분이 계셔서 참조한다.
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
dict = {}
for i in range(1, n + 1):
a = input().rstrip()
dict[i] = a
dict[a] = i
for i in range(m):
quest = input().rstrip()
if quest.isdigit():
print(dict[int(quest)])
else:
print(dict[quest])
딕셔너리에 값을 다 저장하고, 들어오는 값에 대해 정수인지 판단한다.
https://gudwns1243.tistory.com/63 <- 참조 블로그
'코테 > BOJ' 카테고리의 다른 글
백준 11659 구간 합 구하기 (0) | 2023.03.20 |
---|---|
백준 1764 [듣보잡] 파이썬 (0) | 2023.03.20 |
백준 17219 [비밀번호 찾기] 파이썬 (0) | 2023.03.20 |
백준 11723 [집합] 파이썬 (0) | 2023.03.20 |
백준 18111 [마인크래프트] 파이썬 (0) | 2023.03.20 |