- C언어 : 문자열(8)
25.JUN.2022
상근이의 할머니는 오래된 다이얼 전화기를 사용한다. 숫자 1을 걸려면 총 2초가 필요하다. 1보다
큰 수를 거는데 걸리는 시간은 이보다 더 걸리며, 한 칸 옆에 있는 숫자를 걸기 위해선 1초씩
더 걸린다. 할머니가 외운 단어가 주어졌을 때, 이 전화를 걸기 위해서 필요한 최소 시간을 구하는
프로그램을 작성하시오.
#include <stdio.h>
int func(char x); // 문자를 넣으면 걸리는 시간을 RTN 할 함수
int main()
{
int sum = 0; // sum = 총 걸리는 시간
char* str = (char*)malloc(sizeof(char) * 15);
scanf("%s", str);
for (int i = 0; i < strlen(str); i++)
sum += func(str[i]); // 입력한 문자열을 돌며 각 단어의 소요 시간을 더함
printf("%d", sum);
return 0;
}
int func(char x) // switch문 사용
{
switch (x)
{
case 'A':
case 'B':
case 'C':
return 3;
case 'D':
case 'E':
case 'F':
return 4;
case 'G':
case 'H':
case 'I':
return 5;
case 'J':
case 'K':
case 'L':
return 6;
case 'M':
case 'N':
case 'O':
return 7;
case 'P':
case 'Q':
case 'R':
case 'S':
return 8;
case 'T':
case 'U':
case 'V':
return 9;
default:
return 10;
}
}