728x90
다이얼 성공출처다국어분류
한국어
시간 제한메모리 제한제출정답맞은 사람정답 비율
1 초 | 128 MB | 33536 | 18981 | 17186 | 57.249% |
문제
상근이의 할머니는 아래 그림과 같이 오래된 다이얼 전화기를 사용한다.
전화를 걸고 싶은 번호가 있다면, 숫자를 하나를 누른 다음에 금속 핀이 있는 곳 까지 시계방향으로 돌려야 한다. 숫자를 하나 누르면 다이얼이 처음 위치로 돌아가고, 다음 숫자를 누르려면 다이얼을 처음 위치에서 다시 돌려야 한다.
숫자 1을 걸려면 총 2초가 필요하다. 1보다 큰 수를 거는데 걸리는 시간은 이보다 더 걸리며, 한 칸 옆에 있는 숫자를 걸기 위해선 1초씩 더 걸린다.
상근이의 할머니는 전화 번호를 각 숫자에 해당하는 문자로 외운다. 즉, 어떤 단어를 걸 때, 각 알파벳에 해당하는 숫자를 걸면 된다. 예를 들어, UNUCIC는 868242와 같다.
할머니가 외운 단어가 주어졌을 때, 이 전화를 걸기 위해서 필요한 시간을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어는 2글자~15글자로 이루어져 있다.
출력
첫째 줄에 다이얼을 걸기 위해서 필요한 시간을 출력한다.
예제 입력 1 복사
UNUCIC
예제 출력 1 복사
36
소스
#include<stdio.h>
#include<string.h>
int main()
{
char str[20];
scanf("%s", str, 20); //UNUCIC 868242 36
int len = strlen(str); //문자열 길이
int i = 0; //for문
int minus = 0; //비교값
int result = 0; //결과값
for (i = 0; i < len; i++)
{
if (str[i] >= 65 && str[i] <= 67) {
result += 3;
}
else if (str[i] >= 68 && str[i] <= 70) {
result += 4;
}
else if (str[i] >= 71 && str[i] <= 73) {
result += 5;
}
else if (str[i] >= 74 && str[i] <= 76) {
result += 6;
}
else if (str[i] >= 77 && str[i] <= 79) {
result += 7;
}
else if (str[i] >= 80 && str[i] <= 83) {
result += 8;
}
else if (str[i] >= 84 && str[i] <= 86) {
result += 9;
}
else if (str[i] >= 87 && str[i] <= 90) {
result += 10;
}
}
printf("%d", result);
}
'백준 코딩테스트 > 6. 문자열' 카테고리의 다른 글
백준 1316) 그룹 단어 체커 (c) (0) | 2020.10.05 |
---|---|
2908) 상수 (c) (0) | 2020.09.30 |
1152) 단어의 개수 (c) (0) | 2020.09.30 |
1157) 단어 공부 (c) (0) | 2020.09.30 |
2675) 문자열 반복 (c) (0) | 2020.09.30 |