오보에블로그

5622 다이얼 본문

C++ & C#/C++

5622 다이얼

(OBO) 2017. 12. 29. 07:25
728x90


/*

문제

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


전화를 걸고 싶은 번호가 있다면, 숫자를 하나를 누른 다음에 금속 핀이 있는 곳 까지 시계방향으로 돌려야 한다. 다른 숫자를 누르려면 다이얼이 원래 위치로 돌아가기를 기다려야 한다.

숫자 1을 걸려면 총 2초가 필요하다. 1보다 큰 수를 거는데 걸리는 시간은 이보다 더 걸리며, 한 칸 옆에 있는 숫자를 걸기 위해선 1초씩 더 걸린다.


상근이의 할머니는 전화 번호를 각 숫자에 해당하는 문자로 외운다. 즉, 어떤 단어를 걸 때, 각 알파벳에 해당하는 숫자를 걸면 된다. 예를 들어, UNUCIC는 868242와 같다.


할머니가 외운 단어가 주어졌을 때, 이 전화를 걸기 위해서 필요한 시간을 구하는 프로그램을 작성하시오.


입력

첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어는 2글자~15글자로 이루어져 있다.


출력

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


예제 입력  복사

UNUCIC

예제 출력  복사

36

힌트

*/



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
#include <string.h>
 
int main(void){
    int c;
    int result = 0;
    while((c=getchar()) != '\n' && (c != EOF)){
        if(64 < c && c < 68){/*ABC*/
            result+=3;
        }
        else if(67 < c && c < 71){/*DEF*/
            result+=4;
        }
        else if(70 < c && c < 74){/*GHI*/
            result+=5;
        }
        else if(73 < c && c < 77){/*JKL*/
            result+=6;
        }
        else if(76 < c && c < 80){/*MNO*/
            result+=7;
        }
        else if(79 < c && c < 84){/*PQRS*/
            result+=8;
        }
        else if(83 < c && c < 87){/*TUV*/
            result+=9;
        }
        else if(86 < c && c < 91){/*WXYZ*/
            result+=10;
        }
    }
    printf("%d",result);
}
 
cs


The source of this problem is Baekjoon Online Judge(http://www.acmicpc.net/)

dial_5622.c


728x90

'C++ & C# > C++' 카테고리의 다른 글

2522 별찍기-12  (0) 2018.01.31
2523 별찍기-13  (0) 2018.01.30
1065 한수  (0) 2017.12.28
1085 직사각형에서 탈출  (0) 2017.11.20
Bitwise Operators and Enumeration Types  (0) 2017.11.19