Breaking

2019년 1월 13일 일요일

Baekjoon 5622번 다이얼 dial

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