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 |