본문 바로가기

공부/알고리즘 문제풀이

[BOJ] 5622. 다이얼

반응형

문제 링크


어떻게 풀까?


단순한 구현문제입니다!


알파벳이 입력되었을때, 해당 알파벳에 해당하는 시간으로 변환해주는 배열을 만들면 쉽게 해결할 수 있습니다!


예를 들면, t['A'] = 3, t['B'] = 3, ... 이렇게 저장해놓으면, 

UNUCIC 가 들어왔을 때 쉽게 이 문자열을 숫자로 변환해서 더해줄 수 있습니다!


코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include<iostream>
#include<cstring>
 
using namespace std;
 
int conv[256];
char nums[16];
 
int main() {
    for (int i = 0; i < 26; i++) {
        conv[i + 'A'= i / 3 + 3;
    }
 
    conv['S'= 8;
    conv['V'= 9;
    conv['Y'= 10;
    conv['Z'= 10;
 
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
 
    cin >> nums;
    int len = strlen(nums);
 
    int t = 0;
    for (int i = 0; i < len; i++) {
        t += conv[nums[i]];
    }
    cout << t << endl;
    
    return 0;
}
 
cs


시간복잡도


시간복잡도는 O(N) 입니다!

반응형