5622번: 다이얼
첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어는 2글자~15글자로 이루어져 있다.
www.acmicpc.net
#include <iostream>
using namespace std;
int number(char c) {
if (c >= 'A' && c <= 'C')
return 2; //3초
else if (c >= 'D' && c <= 'F')
return 3;
else if (c >= 'G' && c <= 'I')
return 4;
else if (c >= 'J' && c <= 'L')
return 5;
else if (c >= 'M' && c <= 'O')
return 6;
else if (c >= 'P' && c <= 'S')
return 7;
else if (c >= 'T' && c <= 'V')
return 8;
else if (c >= 'W' && c <= 'Z')
return 9;
}
int main() {
string str;
cin >> str;
int ans = 0;
for (int i = 0; i < str.length(); i++) {
ans += number(str[i])+1;
}
cout << ans;
return 0;
}
문제에 써있는대로 코딩했더니 그냥 바로 풀렸다. 쉬웠다.
[문제 풀이 생각 과정]
1. 숫자 0,1은 주어진 알파벳이 없으니 생각 안해도 된다.
2. 알파벳에 해당하는 숫자를 리턴하는 함수number(char c)를 만들었다.
3. 숫자 1일 때 2초니까 - 숫자 2이면 3초이다. number(char c)에서 리턴하는 각 숫자에 +1 를 해줘서 더해주면 된다.
'1d-1c > BOJ' 카테고리의 다른 글
1316_그룹 단어 체커 (C++) (0) | 2020.08.28 |
---|---|
2941_크로아티아 알파벳 (C++) (0) | 2020.08.26 |
2908_상수 (C++) (0) | 2020.08.26 |
1157_단어 공부 (C++) (0) | 2020.08.25 |
10809_알파벳 찾기 (C++) (0) | 2020.08.25 |