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

4659 비밀번호 발음하기

by tryotto 2020. 1. 7.
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
46
47
48
49
50
51
52
53
54
55
56
#include <stdio.h>
#include <string.h>
 
int jamo(char c) {
    if ((c == 'a'|| (c == 'e'|| (c == 'i'|| (c == 'o'|| (c == 'u')) {
        return 1;
    }
    else {
        return 2;
    }
}
 
int main() {
    while (1) {
        int flag = 1;
        char arr[30= { 0 };
        scanf("%s"&arr);
 
        //탈출조건
        if (!strcmp(arr, "end"))
            break;
 
        //모음 포함
        int len = strlen(arr);
        for (int i = 0; i < len; i++) {
            if (jamo(arr[i]) == 1) {
                flag = 0;
            }
        }
 
        //자음모음        
        for (int i = 2; i < len; i++) {
            int one = jamo(arr[i - 2]);
            int two = jamo(arr[i - 1]);
            int three = jamo(arr[i]);
 
            if (one == two && two == three) {
                flag = 1;
            }
        }
 
        //연속문자
        for (int i = 1; i < len; i++) {
            if ((arr[i] == arr[i - 1])&&(arr[i]!='e')&& (arr[i] != 'o')) {
                flag = 1;
            }
        }
 
        if (flag == 0) {
            printf("<%s> is acceptable.\n", arr);
        }
        else {
            printf("<%s> is not acceptable.\n", arr);
        }
    }
}
cs



char 을 이용한 string 을 처음으로 사용해봤다.
굳이 string 클래스를 쓰지 않아도, 충분히 여러가지 기능들을 할 수 있는 것 같다.

비교연산은 strcmp 를 사용해야한다는 점이 있지만,
printf 할땐 입력받을때와 같이 똑같은 방식으로 출력이 가능하다


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

문자열 정리> 기본 기법들 모음  (0) 2020.01.12
9971 The Hardest Problem Ever  (0) 2020.01.07
10545 뚜기뚜기메뚜기  (0) 2020.01.06
3077 임진왜란  (0) 2020.01.06
4949 균형잡힌 세상  (0) 2020.01.06