반응형
코드를 보기 전에:처음에는 약간 헷갈렸지만, 문제를 천천히 읽어보면서 문제 이해부터 시작한 다음 코딩했다.
10번째 줄의 for(int a=1; ; a++) 이 문장이 가장 핵심인 것 같다.
이 문제의 핵심 포인트는 무한반복문인것 같다.
입력받은 숫자중에 적어도 3개의 문자의 배수를 구해야 한다.
무한 반복문을 잘못 사용하면 값이 안나오고 시간초과가 되므로, 조건문을 이용해서 break해야한다.
밑의 코드에서는 적어도 3개의 숫자로 나눴을때 나머지가 0이면 탈출하도록 했다.
*바로 탈출해야 최솟값을 구할수가 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
for (int a=1;; a++)
{
for (int b = 0; b < 5; b++)
{
if (a%s[b] == 0)
result++;
}
if (result >= 3)
{
printf("%d\n", a);
break;
}
else
result = 0;
}
|
cs |
Full code
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
|
#include <stdio.h>
int main()
{
int s[5];
int result = 0;
for (int a = 0; a < 5; a++)
{
scanf("%d", &s[a]);
}
for (int a=1;; a++)
{
for (int b = 0; b < 5; b++)
{
if (a%s[b] == 0)
result++;
}
if (result >= 3)
{
printf("%d\n", a);
break;
}
else
result = 0;
}
return 0;
}
|
cs |
반응형