Baekjoon 5622번 다이얼 dial
https://www.acmicpc.net/problem/5622
getStr=input() dial={i:2+(i-1) for i in range(1,10)} dial[0]=dial[9]+1 numToStr={2:'ABC',3:'DEF',4:'GHI',5:'JKL', 6:'MNO',7:'PQRS',8:'TUV',9:'WXYZ'} sum=0 for i in range(len(getStr)): for key in numToStr.keys(): if getStr[i] in list(numToStr[key]): sum += dial[key] break print(sum)
우선 다이얼 숫자별 시간을 나타내는 dict인 dial,
다이얼 숫자별 문자를 나타내는 dict인 numToStr
두 개의 dict를 가지고 조합을 하는 방식을 채택하였다.
여기서 핵심은 getStr[i]의 대문자 1개가 numToStr[key] 안에 여러 대문자조합 안에 들어있는지를 확인하는 if문이며
if getStr[i] in list(numToStr[key]): => if getStr[i] in numToStr[key]:
list로 나누지않은 문자 스트링을 넣는 방식 또한 사용 가능한 것을 확인했다.
굳이 dial을 넣지 않고 숫자로 더해버리는 방법 또한 좋은 방법일 것 같다.
ALL RIGHT RESERVED TWINSTARINFO