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");
}
|
<문제 링크>
https://www.acmicpc.net/problem/17253
17253번: 삼삼한 수 2
첫째 줄에 9,223,372,036,854,775,807보다 작거나 같은 음이 아닌 정수 N이 입력된다.
www.acmicpc.net