본문 바로가기
알고리즘/문자와 문자열

10551 STROJOPIS

by tryotto 2020. 1. 6.
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
35
36
37
38
39
40
41
42
43
44
45
#include <stdio.h>
#include <string.h>
 
int index(char c){
    if (c == '1' || c == 'Q' || c == 'A' || c == 'Z') {
        return 0;
    }
    else if (c == '2' || c == 'W' || c == 'S' || c == 'X') {
        return 1;
    }
    else if (c == '3' || c == 'D' || c == 'C' || c == 'E') {
        return 2;
    }
    else if (c=='4' || c == 'R' || c == 'F' || c == 'V' || c == '5' || c == 'T' || c == 'G' || c == 'B') {
        return 3;
    }
    else if (c == '6' || c == '7' || c == 'Y' || c == 'U' || c == 'H' || c == 'J' || c == 'N' || c == 'M') {
        return 4;
    }
    else if (c == '8' || c == 'I' || c == 'K' || c == ',') {
        return 5;
    }
    else if (c == '9' || c == 'O' || c == 'L' || c == '.') {
        return 6;
    }
    else {
        return 7;
    }
}
 
int main() {
    int key[10= { 0 };
    char arr[55= { 0 };
    scanf("%s", arr);
 
    int len = strlen(arr);
    for (int i = 0; i < len; i++) {
        int idx = index(arr[i]);
        key[idx]++;
    }
 
    for (int i = 0; i < 8; i++) {
        printf("%d\n", key[i]);
    }
}
cs

case문을 쓰려 했으나, 문법의 제한이 걸려서 못 사용했다.

if 문을 쓸 때에도 조금 더 간단한 문법을 고민했는데 결국엔 노가다를 했다. 

다른 방법이 없을까?


'알고리즘 > 문자와 문자열' 카테고리의 다른 글

9933 민균이의 비밀번호  (0) 2020.01.06
3986 좋은 단어  (0) 2020.01.06
5218 알파벳 거리  (0) 2020.01.05
11656 접미사 배열  (0) 2020.01.05
1371 가장 많은 글자  (0) 2020.01.05