처음에는 문자열의 범위 조건으로 총합을 구했다.
다른 분의 코드를 보고 문자의 인덱스 자체를 숫자로 쓰는 코드로 바꿔서 다시 풀었다.
#include <bits/stdc++.h>
using namespace std;
string input;
int len, sum;
int main(void) {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> input;
len = input.size();
for(int i = 0; i < len; i++){
char ch = input[i];
if(ch >= 'W') sum += 10;
else if(ch >= 'T') sum += 9;
else if( ch >= 'P') sum += 8;
else if(ch >= 'M') sum += 7;
else if(ch >= 'J') sum += 6;
else if(ch >= 'G') sum += 5;
else if(ch >= 'D') sum += 4;
else if(ch >= 'A') sum += 3;
}
cout << sum;
return 0;
}
"맞았습니다" 코드 링크2 : 문자의 인덱스를 숫자로 활용
#include <bits/stdc++.h>
using namespace std;
string input;
string numst = "22233344455566677778889999"; // 다이얼 숫자 그대로 사용
int main(void) {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> input;
int sum = 0;
int len = input.size();
for(int i = 0; i < len; i++){
int numidx = input[i] - 'A';
sum += (numst[numidx] - '0' + 1); // 다이얼 숫자보다 +1초 더 걸림.
}
cout << sum;
return 0;
}
728x90
'알고리즘 > 백준' 카테고리의 다른 글
종이의 개수 백준 1780번 c++ (0) | 2022.02.21 |
---|---|
하얀 칸 백준 1100번 c++ (0) | 2022.02.21 |
네 번째 점 백준 3009번 c++ (0) | 2022.02.21 |
백설 공주와 일곱 난쟁이 백준 3040번 c++ (0) | 2022.02.20 |
색종이 만들기 백준 2630번 c++ (0) | 2022.02.20 |