목록Algorithm/백준 (39)
서의 공간
[문제]: 15654번: N과 M (5) (acmicpc.net) #include #include #include using namespace std; int n, m; int vec[10]; int arr[10]; bool picked[10]; void solution(int k) { if (k == m) { for (int i = 0; i m; for (int i = 0; i > vec[i]; sort(vec, vec + n); solution(0); return 0; }
[문제]: 15652번: N과 M (4) (acmicpc.net) #include using namespace std; int n, m; int arr[10]; void solution(int k, int p) { if (k == m) { for (int i = 0; i < m; ++i) cout m; solution(0, 1); return 0; }
[문제]: 15651번: N과 M (3) (acmicpc.net) #include using namespace std; int n, m; int arr[10]; void solution(int k) { if (k == m) { for (int i = 0; i < m; ++i) cout m; solution(0); return 0; }
[문제]: 15650번: N과 M (2) (acmicpc.net) #include using namespace std; int n, m; int arr[10]; void solution(int k, int p) { if (k == m) { for (int i = 0; i < m; ++i) cout m; solution(0, 0); return 0; }
[문제]: 15649번: N과 M (1) (acmicpc.net) #include using namespace std; int n, m; int arr[10]; bool picked[10]; void solution(int k) { if (k == m) { for (int i = 0; i < m; ++i) cout m; solution(0); return 0; }
[문제]: 2447번: 별 찍기 - 10 (acmicpc.net) #include #include using namespace std; char map[2187][2187]; void solution(int y, int x, int n) { if (n == 1) { map[y][x] = '*'; return; } int div = n / 3; for (int i = 0; i < 3; ++i) { for (int j = 0; j < 3; ++j) { if (i == 1 && j == 1) continue; solution(y + (div * i), x + (div * j), div); } } } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr..
[문제]: 9020번: 골드바흐의 추측 (acmicpc.net) 체로 소수를 걸러내는건 간단하다. 핵심은 만약 가능한 n의 골드바흐 파티션이 여러 가지인 경우 두 소수의 차이가 가장 작아야만 한다. 그렇게 하기 위해 주어진 입력 n의 중간부터 하나씩 작게 세어서 두 소수를 찾는다. #include using namespace std; bool che[10001]; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); fill(che, che + 10001, true); che[0] = che[1] = false; for (int i = 2; i * i T; while (T--) { int n; cin >> n..
[문제]: 5430번: AC (acmicpc.net) 이 문제의 핵심은 D 앞에 있는 R의 개수가 짝수인지 홀수인지 아는 것이다. D 앞에 R이 짝수개이면 짝수개의 R에 대해 뒤집는 연산은 의미가 없다. 따라서 D 연산을 할 때 앞에 원소를 삭제하면 된다. 만약 R이 홀수개라면 뒤집는 연산을 딱 한번만 한 것과 같으므로 한 번만 뒤집는다, 그러나 실제로는 배열을 뒤집지 않고 마지막 원소를 삭제하는 방법으로 원소를 삭제하는 위치만 바꾸어서 구현했다. 또한 실제로는 D 앞에 R이 짝수개인지 홀수개인지 카운트 하지 않고 짝수개이면 popWhere = false로, 홀수개이면 popWhere = true로 두어 D 연산이 삭제할 위치를 결정했다. 마지막에는 R의 총 개수가 짝수개인지 홀수개인지 확인해서 최종 배..
[문제]: 2217번: 로프 (acmicpc.net) #include #include using namespace std; int W[100001]; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int N; cin >> N; for (int i = 0; i > W[i]; sort(W, W + N); int ret = 0; for (int i = 1; i
[문제]: 1260번: DFS와 BFS (acmicpc.net) #include #include #include #include #include using namespace std; int N, M, V; vector graph[1002]; bool visBFS[1002]; bool visDFS[1002]; void BFS() { queue q; q.push(V); visBFS[V] = 1; while (!q.empty()) { int cur = q.front(); q.pop(); cout V; for (int i = 0; i > v >> e; graph[v].push_back(e); graph[e].push_back(v); } for (int i = 1; i