오보에블로그
5622 다이얼 본문
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/)
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 |