Algorithm/Baekjoon
-
[C++] 16566번 카드 게임Algorithm/Baekjoon 2025. 7. 29. 14:17
문제https://www.acmicpc.net/problem/16566 코드#include #include #include #include #include using namespace std;vector parent;vector cards;// 3. 대표 찾기 함수 find_parent(x)// DSU에서 경로 압축을 이용해 집합의 대표(사용 가능한 인덱스) 반환int find_parent(int x) { // 3-1. 기저 조건: 자신이 대표 노드인 경우 if (parent[x] == x) return x; // 3-2. 경로 압축: 상위 노드의 대표를 재귀로 찾아 연결 return parent[x] = find_parent(parent[x]);}int main() { ..
-
[C++] 17144번 미세먼지 안녕!Algorithm/Baekjoon 2025. 7. 25. 12:26
문제https://www.acmicpc.net/problem/17144 코드#include using namespace std;int r, c, t;int board[50][50];int temp_board[50][50];int top_purifier = -1, bottom_purifier = -1;void spread() { // 1 확산용 temp_board 초기화 for (int i = 0; i 0) { int spread_amount = board[i][j] / 5; int cnt = 0; for (int d = 0; d = r || nj = c) continue; ..
-
[C++] 17070번 파이프 옮기기 1Algorithm/Baekjoon 2025. 7. 24. 12:20
문제https://www.acmicpc.net/problem/17070 코드#include #include #include #include using namespace std;int main() { // 1 입출력 최적화 sync 끄고 tie 해제 ios::sync_with_stdio(false); cin.tie(nullptr); // 2 N 입력 및 맵 a 배열 초기화 int N; cin >> N; int a[17][17]; for (int i = 1; i > a[i][j]; } } // 3 dp 배열 선언 및 초기 상태 설정 static long long dp[17][17][3]; // dp[i][j][0]: (i,j)..
-
[C++] 16953번 A -> BAlgorithm/Baekjoon 2025. 7. 23. 12:16
문제https://www.acmicpc.net/problem/16953 코드#include using namespace std;int main() { // 1 입출력 최적화 sync 끄고 tie 해제 ios::sync_with_stdio(false); cin.tie(nullptr); // 2 a와 b 입력 받기 long long a, b; cin >> a >> b; // 3 연산 횟수 카운터 초기화 int cnt = 0; // 4 b가 a보다 클 동안 역연산 반복 while (b > a) { // 4-1 마지막 자리가 1이면 1 제거 후 10으로 나눔 if (b % 10 == 1) { b = (b - ..
-
[C++] 16236번 아기 상어Algorithm/Baekjoon 2025. 7. 22. 12:14
문제https://www.acmicpc.net/problem/16236 코드#include #include #include #include #include using namespace std;int n;// 1 먹이 물고기 탐색 및 이동 거리 계산int bfs(int& x, int& y, int& cnt, int& size, vector>& board) { int dx[] = {-1, 0, 0, 1}; int dy[] = { 0,-1, 1, 0}; queue> q; vector> visited(n, vector(n)); vector> temp; // 1-1 시작 지점 방문 표시 및 큐에 삽입 visited[x][y] = 1; q.push({x, y}); ..
-
[C++] 15686번 치킨 배달Algorithm/Baekjoon 2025. 7. 21. 12:13
문제https://www.acmicpc.net/problem/15686 코드#include #include #include #include using namespace std;int main() { // 1 입력 처리 ios::sync_with_stdio(false); cin.tie(nullptr); int n, m; cin >> n >> m; // 2 치킨집과 집 위치 저장 vector> board(n, vector(n)); vector> chicken; vector> house; for (int i = 0; i > board[i][j]; if (board[i][j] == 1) house.empla..
-
[C++] 15654번 N과 M (5)Algorithm/Baekjoon 2025. 7. 20. 12:10
문제https://www.acmicpc.net/problem/15654 코드#include #include #include using namespace std;int n, m;vector arr;vector used(8);// 1 재귀를 이용한 순열 생성 함수void recursion(vector& nums) { // 1-1 완성된 순열 출력 if (nums.size() == m) { for (auto num : nums) { cout > n >> m; // 3 입력값을 arr에 저장하고 오름차순 정렬 arr.resize(n); for (int i = 0; i > arr[i]; } sort(arr.begin(), arr.end()..
-
[C++] 15652번 N과 M (4)Algorithm/Baekjoon 2025. 7. 19. 12:08
문제https://www.acmicpc.net/problem/15652 코드#include #include #include using namespace std;int n, m;// 1 재귀 함수 정의: idx부터 시작해 조합 생성void recursion(int idx, vector& nums) { nums.push_back(idx) // 선택한 숫자를 nums에 추가 if (nums.size() == m) { // 2 조합 완성 시 nums 출력 for (auto num : nums) { cout > n >> m // 1 입력 처리: n과 m 입력 받음 vector nums // 4 첫 숫자 선택 반..