다이얼 전화를 건다. 1 을 거는데 시계방향으로 1초 돌아오는데 1초, 즉 2초가 걸린다.
2, 3.. 0 번 번호는 멀수록 1초씩 더 걸린다.
각 숫자에는 알파벳이 할당되어 있는데, 알파벳으로 번호를 외워서 전화를 걸수도 있습니다.
1: 알파벳 없음
2: ABC
3: DEF
4: GHI
5: JKL
6: MNO
7: PQRS
8: TUV
9: WXYZ
0: 없음
알파벳 단어가 UNUCIC 라면 868242 가 된다.
단어가 주어졌을 때 전화를 거는 최소시간을 구하는 프로그램을 작성하라.
입력/출력
--입력--
WA
--출력--
13
--입력--
UNUCIC
--출력--
36
문제풀이+해설
알파벳에 해당하는 숫자는 배열에 알파벳 순서에 따른 번호를 넣어두고 찾는다.
ns = "22233344455566677778889999";
//ABCDE..
문자는 아스키코드값이며 ABC 순서대로 위치하므로 B의 경우 'A'-'A'는 0, 'B'-'A' 를 빼면 1, ..이 된다.
이 원리로 문자에 해당하는 배열값을 뽑아낼 수 있다.
각 번호별 걸리는 시간은 아래와 같다.
1 을 거는데 걸리는 시간은 2초
2 를 거는데 걸리는 시간은 2초 +1초 = 3초
3 은 4초, 4는 5초
즉 n번호를 거는데 걸리는 시간은 n+1초가 된다.