내가 작성한 코드
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
cin >> s;
int len = s.length();
int time = 0;
string except = "SVYZ";
for (int i = 0; i < len; ++i) {
time += ((s[i] - 'A') / 3) + 3;
if (except.find(s[i]) != string::npos)
time -= 1;
}
cout << time << endl;
return 0;
}
다이얼 7번에 4개의 문자가 할당되어 있어 3으로 나누어 몫을 기준으로 해당 문자의 값을 정하는 방식에 문제가 생겼다.
위의 예외사항으로 인하여 7, 8, 9에 맨 마지막 글자들인 S, V, Y, Z의 다이얼 숫자로의 치환이 잘 이루어지지 않았고, 예외 발생 문자들을 모은 문자열을 만들어 예외처리를 해주었다.