문제
풀이
이 문제는 전화를 걸기위해 다이얼을 돌릴 때마다 1초씩 더 걸린다는 말을 잘 이해하지 못해 풀이에 어려움이 있었던 문제입니다. 먼저 문제 해결을 위해 각 문자에 해당하는 숫자부터 정리하겠습니다.
1 :
2 : A~C
3 : D~F
4 : G~I
5 : J~L
6 : M~O
7 : P~S
8 : T~V
9 : W~Z
이것을 이용하여 입력받은 값에서 알파벳이 A~C 일경우 +3, D~F일 경우 +4..... 이런식으로 입력받은 배열의 크기만큼 반복문을 수행해주면 되는 비교적 어렵지 않은 문제였습니다. 소스코드는 아래와 같습니다.
소스코드
#include <iostream>
#include <cstring>
using namespace std;
int main(){
char dial[16];
int cnt=0;
cin >>dial;
for (int i = 0; i < strlen(dial); i++)
{
if ('A'<=dial[i] && dial[i]<='C') cnt+=3;
else if('D'<=dial[i] && dial[i]<='F') cnt+=4;
else if('G'<=dial[i] && dial[i]<='I') cnt+=5;
else if('J'<=dial[i] && dial[i]<='L') cnt+=6;
else if('M'<=dial[i] && dial[i]<='O') cnt+=7;
else if('P'<=dial[i] && dial[i]<='S') cnt+=8;
else if('T'<=dial[i] && dial[i]<='V') cnt+=9;
else if('W'<=dial[i] && dial[i]<='Z') cnt+=10;
else return 0;
}
cout << cnt;
}
'Algorithm > Python, C++' 카테고리의 다른 글
백준 1316_그룹 단어 체커 [C++] (0) | 2022.07.12 |
---|---|
백준 2941_크로아티아 알파벳 [C++] (0) | 2022.07.11 |
백준 2908_상수 [C++] (0) | 2022.07.09 |
백준 1157_단어 공부 [C++] (0) | 2022.07.07 |
백준 2675_문자열 반복 [C++] (0) | 2022.07.05 |
댓글