/* 문제를 익숙하게 풀 수 있도록, 그리고 틀린 문제는 틀리도록 내버려 둬야 합니다. 최근 틀린 문제 기록해서, 그것만 다시 풀어볼 수 있도록 해야합니다. 그런데 지금은 다지는 시간 이므로 다시 한번 풀어보는 시간을 가지면 좋습니다. 그리고 비슷한 문제가 나오면 생각이 빠르게 나리라 생각됩니다. 다이얼 전화기를 사용합니다. 숫자를 하나 누른다음에 금속핀이 있는 곳까지 시계방향으로 돌립니다. 숫자 1을 걸려면 총 2초가 필요 외운 단어 가 주어졌을 때, 이 전화를 걸기 위해서 필요한 시간을 구하는 프로그램이. 다른 숫자를 누르려면 다이얼이 원래 위치로 돌아가는 것을 기다려야합니다. 오케이요. 그럼 1을 하려면 총 4초가 걸리는 것입니까? 예를 한번 풀어보도록 하겠습니다. UNUCIC 이어서 868242 인데 이것이 9 + 7 + 9 + 3 + 5 + 3 18, 25, 11 36 기다리지는 않아도 되네요. 문제가 잘 못 써있는데요. 다른 숫자를 누르려면 다이얼이 원래 위치로 돌아가기를 기다려야 한다는 것은 없어도 될 것 같습니다. 1. 알파벳과 숫자를 매칭하기 2. 매칭 된 숫자가 걸리는 시간 어레이로 만들기 3. 숫자를 모두 더하기, 오케이요. 먼저 UNUCIC 를 868242 로 변경되는 것을 나타내도록 하겠습니다. */ #include <iostream> #include <string> using namespace std; string word; int ans = 0; void problemIn() { cin >> word; } void solve() { for (int i = 0; i < word.length(); i++) { if (word[i] == 'A' || word[i] == 'B' || word[i] == 'C') ans += 3; else if (word[i] == 'D' || word[i] == 'E' || word[i] == 'F') ans += 4; else if (word[i] == 'G' || word[i] == 'H' || word[i] == 'I') ans += 5; else if (word[i] == 'J' || word[i] == 'K' || word[i] == 'L') ans += 6; else if (word[i] == 'M' || word[i] == 'N' || word[i] == 'O') ans += 7; else if (word[i] == 'P' || word[i] == 'Q' || word[i] == 'R' || word[i] == 'S') ans += 8; else if (word[i] == 'T' || word[i] == 'U' || word[i] == 'V') ans += 9; else if (word[i] == 'W' || word[i] == 'X' || word[i] == 'Y' || word[i] == 'Z') ans += 10; } cout << ans << endl; } int main(void) { problemIn(); solve(); return 0; }
|
워드 스트링으로 받고, 받은 것에 어떻게 접근할지, 그리고 예제 하나를 두고, 이것을 하나씩 풀어나가면 됩니다. 한번에 여러개의 문제를 풀지 말고, 잘게잘게 자른다음에 풀어나갑니다. |