728x90
반응형

블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다.


문제 설명

  • 전화를 걸 때, 숫자 1은 2초의 시간이 필요하며, 한 칸 옆에 있는 숫자를 걸기 위해선 1초씩 추가된다.
  • 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. (단어의 길이는 2보다 크거나 같고, 15보다 적거나 같다.)

  • 각 문자를 숫자에 대응했을 때, 이 전화를 걸기 위해서 필요한 최소 시간을 구하는 프로그램을 작성하시오.

 


풀이 전략

  • 각 문자가 입력받는데 걸리는 시간을 배열에 저장 후 계산

소스 코드

#include <iostream>
#include <string>

using namespace std;
int main()
{
	int times[] = { 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 result = 0;
	string input;
	
	cin >> input;
	for (int i=0; i < input.length(); i++)
	{
		result += times[(input[i] - 'A')];
	}
	cout << result;
}

링크

www.acmicpc.net/problem/5622

 

5622번: 다이얼

첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다.

www.acmicpc.net

 

728x90
반응형

'문제풀이 > BOJ' 카테고리의 다른 글

[C++ 백준] 1316 그룹 단어 체커  (0) 2021.05.16
[C++ 백준] 2908 상수  (0) 2021.05.15
[C++ 백준] 2675 문자열 반복  (0) 2021.05.12
[C++ 백준] 1157 단어 공부  (0) 2021.02.02
[C++ 백준] 4344 평균은 넘겠지  (0) 2021.01.09