본문 바로가기

Problem Solving/백준

[백준/C++] 5622번 다이얼


#include <iostream>
using namespace std;


int main() {
    string answer = "ADGJMPTW";
    string str;
    int count = 0;
    cin >> str;
    for(int i = 0; i < str.length(); i++) {
        for(int j = 0; j < answer.length(); j++) {
            if(str[i] < answer[j]) break;
            count++;
        }
        count+=2;
    }
    cout << count;
}

각각 모든 알파벳마다 if문이나 switch문을 지정하기가 너무 귀찮아서 각 해당하는 알파벳들의 시작점보다 크지 않으면 숫자가 넘어가지 않겠구나 라는 것을 생각하여 배열로 만들었습니다.

 

그렇게 해서 각 수문장 알파벳을 넘기지 못하면 해당 숫자가 위치임을 알게 되고 거기에 1번을 누르는데 2초가 걸리므로 2를 추가하는 형태로 구현하여 timecomplexity와 귀찮음을 동시에 잡았습니다.


문제: https://www.acmicpc.net/problem/5622

 

5622번: 다이얼

첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다.

www.acmicpc.net