BOJ

[BOJ] 17253번 - 삼삼한 수 2

곰제비 2020. 4. 19. 23:58

<문제 설명>

 

 

<접근 방식>

기존에 풀었던 삼삼한 수 문제와 동일하다.

다만 문제 조건에서 입력값의 범위가 다르다는 것을 알아야 한다.

int형으로는 입력값의 범위를 받을 수 없으므로 long long 자료형을 사용해야 한다.

항상 문제의 조건을 잘 살펴보도록 하자.

 

2020/04/19 - [BOJ 풀이] - [BOJ] 17252번 - 삼삼한 수

 

[BOJ] 17252번 - 삼삼한 수

<문제 설명> <접근 방식> 단순 수학문제이다. 3의 거듭제곱들의 합으로 이루어져있는가라는 문장으로 보고 주어진 수를 3진법으로 바꿀 생각이 든다면 쉽게 해결 가능하다. 3진법으로 바꾸었을때 0이나 1이 아닌..

dong-min-god.tistory.com

문제 접근방식은 위 링크를 참고하면 된다.

 

 

아래는 전체 코드이다.

 

<전체 코드>

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
#include <stdio.h>
 
int main()
{
    long long N;
    int three[100= { NULL };
    int flag = 1;
    int count = 0;
    scanf("%lld"&N);
    if (N == 0)
        flag = 0;
    for (int i = 0; N > 0; i++) {
        three[i] = N % 3;
        N /= 3;
        count++;
    }
 
    for (int j = 0; j < count; j++) {
        if (three[j] == 0)
            continue;
        else if (three[j] == 1)
            continue;
        else {
            flag = 0;
            break;
        }
    }
    if (flag == 0)
        printf("NO");
    else if (flag == 1)
        printf("YES");
}

 

<문제 링크>