728x90
728x90
문제
-
입력 값으로 문자열을 받는데, 만약 ABC이면 다이얼 전화기로 222를 돌려야 한다.
-
해당 2를 돌리 때 3초가 걸리며, 숫자가 증가할 때마다 1초가 증가된다.
-
문자열을 입력받아서 해당 문자열을 다이얼을 걸기 위한 최소 시간을 출력.
소스 코드
-
알파벳 문자열을 갖는 string과 해당 알파벳 위치에 해당하는 걸리는 시간을 설정한다.
-
입력받은 문자열의 인덱스를 찾아서 arr 배열에 해당 index에 해당하는 값을 sum에 더해준다.
-
arr과 s를 설정하여서 매우 쉬운 코드가 되었다.(다른 풀이가 생각 안 나서..)
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
string s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ",input;
int arr[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 sum = 0;
cin >> input;
for(int i =0; i<input.length(); i++)
{
sum += arr[(int)s[(int)input[i]-65]-65];
}
cout << sum ;
return 0;
}
728x90
728x90
'Language > C++' 카테고리의 다른 글
[BOJ] 스택(Stack)- 10828,1874,2504,4889,1918,6198 - 컴도리돌이 (0) | 2021.03.01 |
---|---|
[C++][백준 1316][문자열] 그룹 단어 체커 - 컴도리돌이 (0) | 2021.01.17 |
[C++][백준 2908][문자열] 상수 - 컴도리돌이 (0) | 2021.01.15 |
[C++][백준 1157][문자열] 단어 공부- 컴도리돌이 (0) | 2021.01.14 |
[C++][백준 10809][문자열] 알파벳 찾기 - 컴도리돌이 (0) | 2021.01.13 |