본문 바로가기
Computer Science

사칙연산 유효성 검사

by OKOK 2019. 1. 24.

1. 트리에 대해서 풀이하는 방법이 있음

2. 들어가야 할 곳에, 루트에는 연산작 ㅏ있어야 함

3. 아래에 자식 노드가 있으면,

4. 일단 i가 N/2 보다 크면, 숫자가 들어가야 하고

5. i > N/2 의 반대이면, 연산자여야 합니다

6. 그리고 만약에 i가 N/2 보다 작은데, 마지막 노드가 아니거나, 전체 vertex가 홀수이면 왼쪽 자식이 존재합니다

7. 나누기와 동일하다면, 

8. 오른쪽 자식이 없는가에 대한 질문임


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
#include <stdio.h>
 
int main()
{
    freopen("input.txt""r", stdin);
    int T;
    int N;
    char input;
    int num;
    int flag;
    int i, j;
 
    for (T = 1; T <= 10++T)
    {
        flag = 1;
        scanf("%d"&N);
        if (N % 2 == 0)
            flag = 0;
        for (i = 1; i <= N; ++i)
        {
            scanf("%d"&num);
            if (i > N / 2)
            {
                scanf(" %c"&input);
                if ((input == '+'|| (input == '-'|| (input == '*'|| (input == '/'))
                    flag = 0;
            }
            else
            {
                scanf(" %c"&input);
                if ((input != '+'&& (input != '-'&& (input != '*'&& (input != '/'))
                    flag = 0;
                if ((i != N / 2|| (N % 2 == 1))
                    scanf("%d"&num); // 왼쪽 자식이 대입
                scanf("%d"&num); // 오른쪽 자식 대입(오른쪽 없으면, 왼쪽임)
            }
        }
        printf("#%d %d\n", T, flag);
    }
    return 0;
}
cs

 


'Computer Science' 카테고리의 다른 글

Contact  (0) 2019.01.24
비밀번호  (0) 2019.01.24
중위순회  (0) 2019.01.23
암호문 3  (0) 2019.01.23
암호문3  (0) 2019.01.22

댓글