반응형
코드를 보기 전에: 이 문제는 브루트포스를 이용해서 푸는 문제다.
브루트포스는 직역하면 무차별 대입이다.
지금까지 풀었던 문제들이 시간을 줄이기 위해 동적계획법이나 반복문등등 사용했다면,
이 문제는 있는 그래도 생각해서 푸는것이다.
Fullcode
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
|
#include <stdio.h>
int main()
{
int e, s, m;
int e1 = 1, s1 = 1, m1 = 1;
scanf("%d %d %d", &e, &s, &m);
if (e == 1 && s == 1 && m == 1) // 1일때 값을 이렇게 정해주지 않으면, 결과값에서 1이 나오는것이 아니라 1 1 1이 두번째로 나오는 a의 값이 출력된다.
printf("%d", 1);
else
{
for (int a = 1; ; a++)
{
e1++;
s1++;
m1++;
if (e1 == 16) // 지구의 범위가 15까지 이므로 16이 되면 1로 변해야한다.
{
e1 = 1;
}
if (s1 == 29) // 태양의 범위가 28까지 이므로 29이 되면 1로 변해야한다.
{
s1 = 1;
}
if (m1 == 20) // 달의 범위가 19까지 이므로 20이 되면 1로 변해야한다.
{
m1 = 1;
}
if (e == e1 && s == s1 && m == m1)
{
printf("%d", a + 1); // for 반복문에서 a의 값이 사용되고나서 1이 더해지므로, 결과값을 출력할때 추가적으로 1을 더해야한다.
break;
}
}
}
}
|
cs |
반응형