백준 5622 다이얼

c++문제풀이

문제

상근이의 할머니는 아래 그림과 같이 오래된 다이얼 전화기를 사용한다. 숫자 1을 걸려면 총 2초가 필요하다. 1보다 큰 수를 거는데 걸리는 시간은 이보다 더 걸리며, 한 칸 옆에 있는 숫자를 걸기 위해선 1초씩 더 걸린다.

상근이의 할머니는 전화 번호를 각 숫자에 해당하는 문자로 외운다.
ABC (2), DEF(3), GHI(4), JKL(5), MNO(6), PQRS(7), TUV(8), WXYZ(9)

즉, 어떤 단어를 걸 때, 각 알파벳에 해당하는 숫자를 걸면 된다. 예를 들어, UNUCIC는 868242와 같다.

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

입력

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

출력

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

char type으로 선언된 문자열 - for 루프내에서 문자열을 반복하는 경우 가운데 조건문에 문자열 배열을 넣자
가운데 조건문에 문자열 배열을 넣으면 문자열의 길이만큼만 for 루프를 반복 혹은 strlen 활용하여 for 루프를 반복

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;

int main()
{
	char word[16];
	scanf("%s", word);
	
	int dial[26] = {3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8,8,9,9,9,10,10,10,10};
	int time = 0;
	
	//for(int i; i<strlen(word); ++i) 
	//strlen is defined in header <cstring>
	
	for(int i=0; i < word[i] ; ++i)
	{
		time += dial[word[i] - 'A'];
	}
	printf("%d", time);

}

RPC Message procedure

Remote Procedure Call - Stateful Continue reading

PubSub architecture

Published on August 10, 2023

RESTful architecture

Published on August 09, 2023