Problem Solving/백준
[백준/C++] 5622번 다이얼
높은곳에영광
2022. 1. 24. 01:58
#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