[Python] 나는야 포켓몬 마스터 이다솜 [백준 1620]

のの·2021년 5월 27일
0

문제 바로가기

풀이

  • 여러줄을 입력받는 경우는 input() 보다는 sys 모듈을 이용한다.
  • sys.stdin.readline()은 개행문자를 포함하므로 개행문자 제거를 위해 strip()을 추가한다.
  • try/catch 문으로 입력값이 문자인지 여부를 확인
import sys

def isNum(s):
    try:
        int(s)
        return True
    except:
        return False

N, M = map(int, sys.stdin.readline().split())
pokemon_dict = dict()
pokemon_name_list = []

i = 0
while i < N:
    pokemon = sys.stdin.readline().strip()
    pokemon_name_list.append(pokemon)
    pokemon_dict[pokemon] = i + 1
    i += 1

j = 0
while j < M:
    q = sys.stdin.readline()
    if isNum(q):
        q = int(q)
        answer = pokemon_name_list[q-1]
    else:
        answer = pokemon_dict[q]
    
    print(answer)
    j += 1
  • 입력값의 첫번째 인덱스 값의 아스키코드 값이 숫자인지 판단하여 문제해결
import sys

N, M = map(int, sys.stdin.readline().split())
pokemon_dict = dict()
pokemon_name_list = []

i = 0
while i < N:
    pokemon = sys.stdin.readline().strip()
    pokemon_name_list.append(pokemon)
    pokemon_dict[pokemon] = i + 1
    i += 1

j = 0
while j < M:
    q = sys.stdin.readline().strip()
    if ord(q[0]) >= 48 and ord(q[0]) <= 57:
        q = int(q)
        answer = pokemon_name_list[q-1]
    else:
        answer = pokemon_dict[q]
    
    print(answer)
    j += 1
    
profile
wannabe developer

0개의 댓글