[백준 C] 5622 : 다이얼

anfruf·2022년 6월 24일

백준 C언어

목록 보기
52/62
  1. 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;
	}
}

0개의 댓글