티스토리 뷰

반응형

문제

 

5622번: 다이얼

문제 상근이의 할머니는 아래 그림과 같이 오래된 다이얼 전화기를 사용한다. 전화를 걸고 싶은 번호가 있다면, 숫자를 하나를 누른 다음에 금속 핀이 있는 곳 까지 시계방향으로 돌려야 한다. �

www.acmicpc.net

 

풀이

이프문을 사용해서 모든 알파벳을 분류하는 방식으로 짜고싶지 않았기 때문에 아스키코드를 활용해서 짰다

word = input()
s = 0

for each in word:
    num = int(ord(each))
  
    if num % 3 == 2:
        num += 1
        
    elif num % 3 == 1:
        num -= 1
        
    s += num / 3 - 19

print(int(s))

근데 7번 다이얼에 배정된 알파벳이 [PQRS] 4개인걸 못봤다 .. 

 

 

 

내가 생각했던것보다 내 방법이 복잡해지는군.. 생각하며 7~9번 버튼부분을 예외로 추가했다

word = input()
s = 0

for each in word:
    num = int(ord(each))
    
    if num <= 80:
        if num % 3 == 2:
            num += 1
        elif num % 3 == 1:
            num -= 1
            
    elif num != 90:
        if num % 3 == 2:
            num -= 2
        elif num % 3 == 1:
            num -= 1
            
    else:
        num -= 3
    s += num / 3 - 19

print(int(s))

 

 

그냥 괜한 고집으로 쉽게 갈 수 있는 길을 돌아돌아간 케이스 ..

반응형