반응형
문제링크 : https://www.acmicpc.net/problem/16561
완전탐색 문제였습니다. 시간제한이 0.1초기 때문에 100만번 연산을 초과하면 시간초과가 납니다. 3개의 수를 결정하는데 for문을 3개를 사용한다면 1000 * 1000 * 1000 즉 10억번 연산하게 되어 10초가 걸리므로 시간초과입니다. 따라서 for문 2개로 답을 내야합니다. 2개만 결정하면 나머지 숫자는 자동으로 결정되므로 문제를 풀 수 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#include <iostream>
using namespace std;
//2개를 뽑으면 나머지 하나는 자동으로 결정된다.
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int n;
int ans = 0;
cin >> n;
for (int i = 1; i <= n/3; i++)
{
for (int j = 1; j <= n/3; j++)
{
int sum = 0;
sum = i * 3 + j * 3;
if ((n-sum) % 3 == 0&& sum<n)
ans++;
}
}
cout << ans << '\n';
}
|
'Algorithm > Implementation' 카테고리의 다른 글
(C) - 백준(BOJ) 10889번 : Acient Symbol 답 (2) | 2020.01.21 |
---|---|
(C++) - 백준(BOJ) 17945번 : 통학의 신 (2) | 2020.01.16 |
(C++) - 백준(BOJ) 1018번 : 체스판 다시 칠하기 (0) | 2020.01.08 |
(C++) - 백준(BOJ) 16727번 : ICPC (0) | 2020.01.08 |
(C++) - 백준(BOJ) 2578번 : 빙고 (0) | 2020.01.07 |