[Python] 1620 나는야 포켓몬 마스터 이다솜 - 집합과 맵

Saemi Min·2023년 3월 11일
0

BaekJoon

목록 보기
26/30
post-thumbnail

실버 4

문제

해당 문제 링크

정답

## 나는야 포켓몬 마스터 이다솜 - 실버 4

import sys
input=sys.stdin.readline

n, m= map(int, input().split())

dogam={}

for i in range(1,n+1):
    k=input().rstrip() ##rstrip()을 해주지 않으면 /n까지 들어간다!!!
    dogam[i]=k
    dogam[k]=i

for i in range(m):
    x=input().rstrip()
    if x.isdigit():
        print(dogam[int(x)])
    else:
        print(dogam[x])

풀이

단순 for문으로 돌려서 풀었지만, 시간 초과 문제가 나타났고, 집합이나 해시맵을 이용해야겠다고 생각이 들어 해시맵을 사용했다. 아직 해시 문법에 어색해서 문법을 참고하며 문제를 풀었다.
오류가 계속 나자 다른 사람들의 코드를 참고해서 해결하였다.
아래의 문법을 참고하기도 했다.
이때 입력을 받을 때 /n이 함께 들어와서 이를 해시맵에넣을 떄 없애줘야한다는 점을 알게되었다! 이 코드에서 가장 중요한 부분 같다.


문법

숫자 판별, 문자 판별

숫자 판별 - isdecimal(), isdigit(), isnumeric()

보통 isdigit()을 사용한다.

문자열 판별 - isalpha()

주어진 문자열이 알파벳으로만 구성되어 있는지 판별한다.
공백이 있으면 False를 반환한다.

String strip(), rstrip(), lstrip()

Python에서 strip()을 이용하면 문자열에서 특정 문자를 제거할 수 있습니다

  • strip([chars]) : 인자로 전달된 문자를 String의 왼쪽과 오른쪽에서 제거합니다.
  • lstrip([chars]) : 인자로 전달된 문자를 String의 왼쪽에서 제거합니다.
  • rstrip([chars]) : 인자로 전달된 문자를 String의 오른쪽에서 제거합니다.
profile
I believe in myself.

0개의 댓글