[Python] 백준알고리즘 #5622

r1verfuture·2021년 12월 4일
0

백준알고리즘

목록 보기
36/110

📝 문제

상근이의 할머니는 아래 그림과 같이 오래된 다이얼 전화기를 사용한다.

전화를 걸고 싶은 번호가 있다면, 숫자를 하나를 누른 다음에 금속 핀이 있는 곳 까지 시계방향으로 돌려야 한다. 숫자를 하나 누르면 다이얼이 처음 위치로 돌아가고, 다음 숫자를 누르려면 다이얼을 처음 위치에서 다시 돌려야 한다.
숫자 1을 걸려면 총 2초가 필요하다. 1보다 큰 수를 거는데 걸리는 시간은 이보다 더 걸리며, 한 칸 옆에 있는 숫자를 걸기 위해선 1초씩 더 걸린다.
상근이의 할머니는 전화 번호를 각 숫자에 해당하는 문자로 외운다. 즉, 어떤 단어를 걸 때, 각 알파벳에 해당하는 숫자를 걸면 된다. 예를 들어, UNUCIC는 868242와 같다.
할머니가 외운 단어가 주어졌을 때, 이 전화를 걸기 위해서 필요한 최소 시간을 구하는 프로그램을 작성하시오.

⌨️ 입력

첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다.

🖨 출력

첫째 줄에 다이얼을 걸기 위해서 필요한 최소 시간을 출력한다.

⌨️ 예제 입력

WA

🖨 예제 출력

13

📚 내가 제출한 코드 1

dialDict = {'A' : 3, 'B' : 3, 'C' : 3, 'D' : 4, 'E' : 4, 'F' : 4, 'G' : 5, 'H' : 5, 'I' : 5, 'J' : 6, 'K' : 6, 'L' : 6, 'M' : 7, 'N' : 7, 'O' : 7, 'P' : 8, 'Q' : 8, 'R' : 8, 'S' : 8, 'T' : 9, 'U' : 9, 'V' : 9, 'W' : 10, 'X' : 10, 'Y' : 10, 'Z' : 10}
myInput = input()
result = 0
for i in myInput:
  result += dialDict[i]
print(result)

✏️ 내가 제출한 코드 1 에 대한 설명

  • input() : 키보드로 입력한 값을 받는 함수
  • dict[ ] : [ ] 안에 입력한 값을 Key로 갖는 Value를 반환한다.
  • 메모리 : 29200 KB
  • 시간 : 72 ms
  • 코드 길이 : 334 B

📚 내가 제출한 코드 2

myInput = input()
result = 0
for i in myInput:
  if i < 'D':
    result += 3
  elif i < 'G':
    result += 4
  elif i < 'J':
    result += 5
  elif i < 'M':
    result += 6
  elif i < 'P':
    result += 7
  elif i < 'T':
    result += 8
  elif i < 'W':
    result += 9
  else:
    result += 10
print(result)

✏️ 내가 제출한 코드 2 에 대한 설명

  • input() : 키보드로 입력한 값을 받는 함수
  • 문자끼리도 대소 비교가 가능하다. (ASCII 코드 번호 기준으로 비교한다.)
  • 메모리 : 29200 KB
  • 시간 : 76 ms
  • 코드 길이 : 307 B
profile
#iOS #Swift #Developer #Python

0개의 댓글