BOJ 6359번 만취한 상범 문제
구현을 하다가 잘 안돼서 문제 분류를 보니 다이나믹 프로그래밍이였다.
다이나믹 프로그래밍으로 풀긴 했는데 생각을 해내는게 더 중요한 거 같다.
6359.cpp
#include <bits/stdc++.h>
using namespace std;
bool dp[101];
void solve() {
memset(dp, 0, sizeof(dp));
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
for (int j = i; j <= n; j += i) {
if (dp[j])
dp[j] = false;
else
dp[j] = true;
}
}
int count = 0;
for (int i = 1; i <= n; i++) {
if (dp[i]) count++;
}
cout << count << '\n';
}
int main() {
int n;
cin >> n;
while (n--) {
solve();
}
}
'알고리즘 & SQL > 백준(BOJ)' 카테고리의 다른 글
백준 16499번 : 동일한 단어 그룹화하기 C++ (0) | 2018.11.27 |
---|---|
백준 6996번 : 에너그램 C++ (0) | 2018.11.26 |
백준 5597번 : 과제 안 내신 분..? C++ (0) | 2018.11.26 |
백준 2606번 : 바이러스 C++ (0) | 2018.11.26 |
백준 2566번 : 최댓값 C++ (0) | 2018.11.26 |