Algorithm/Baekjoon
-
[C++] 15650번 N과 M (2)Algorithm/Baekjoon 2025. 7. 18. 12:05
문제https://www.acmicpc.net/problem/15650 코드#include #include #include using namespace std;int n, m;void recursion(int idx, vector& nums) { // 1 숫자 선택: idx+1 값을 nums에 추가 nums.push_back(idx + 1); // 2 조합 완성 여부 확인 if (nums.size() == m) { // 2-1 완성된 조합 출력 for (int num : nums) cout > n >> m; vector nums; // 2 조합 생성 시작: 첫 숫자 선택 반복문 for (int i = 0; i ..
-
[C++] 14938번 서강그라운드Algorithm/Baekjoon 2025. 7. 17. 12:03
문제https://www.acmicpc.net/problem/14938 코드#include #include #include #include using namespace std;// 다익스트라 최단 경로 탐색 후 획득 아이템 합 반환int dijkstra(int start, int m, const vector& items, const vector>>& graph) { // 1 INF 정의 및 노드 수 n 계산 const int INF = numeric_limits::max(); int n = graph.size(); // 2 거리 벡터 dist와 우선순위 큐 pq 초기화 vector dist(n, INF); priority_queue, vector>, greater>>..
-
[C++] 14502번 연구소Algorithm/Baekjoon 2025. 7. 15. 10:58
문제https://www.acmicpc.net/problem/14502 코드#include #include #include using namespace std;int n, m;// 바이러스 확산 후 안전 영역 계산하는 BFS 함수int bfs(const vector>& board, const vector>& viruses) { int dx[] = { -1, 1, 0, 0 }; int dy[] = { 0, 0, -1, 1 }; // 1 deque와 방문 표시 벡터 초기화 queue> q; vector> visited(n, vector(m, false)); // 2 초기 바이러스 위치 큐에 삽입 및 방문 표시 for (auto p : viruses) { ..
-
[C++] 13459번 숨바꼭질 3Algorithm/Baekjoon 2025. 7. 15. 10:54
문제https://www.acmicpc.net/problem/13459 코드#include #include #include using namespace std;const int MAX = 100001;int bfs(int n, int k) { // 1 deque와 visited 벡터 초기화 deque dq; vector visited(MAX, 0); // 2 시작 지점 설정 n push 및 방문 시간 1 할당 dq.push_back(n); visited[n] = 1; // 3 0-1 BFS 수행 while (!dq.empty()) { int x = dq.front(); dq.pop_front(); // 3-1 목표 지점..
-
[C++] 13172번 ΣAlgorithm/Baekjoon 2025. 6. 27. 21:40
문제https://www.acmicpc.net/problem/13172 코드#include using namespace std;using ll = long long;const int MOD = 1000000007;ll modexp(ll a, ll e) { ll res = 1 // 결과값 초기화 a %= MOD // a에 MOD 나머지 대입 while (e > 0) { if (e & 1) res = res * a % MOD // 지수가 홀수일 때 곱한 뒤 MOD 나머지 a = a * a % MOD // a 제곱 후 MOD 나머지 e >>= 1 // e를 절반으로 줄임 ..
-
[C++] 12865번 평범한 배낭Algorithm/Baekjoon 2025. 6. 26. 21:38
문제https://www.acmicpc.net/problem/12865 코드#include #include #include using namespace std;int main() { // 1 입출력 최적화 sync 끄고 tie 해제 ios::sync_with_stdio(false); cin.tie(nullptr); // 2 물품 개수 N과 최대 무게 K 입력 int N, K; cin >> N >> K; // 3 물품 무게와 가치 저장할 벡터 초기화 vector> items(N); for (int i = 0; i > items[i].first >> items[i].second; } // 4 1차원 DP 테이블 초기화 vector dp(K..
-
[C++] 12851번 숨바꼭질 2Algorithm/Baekjoon 2025. 6. 25. 19:02
문제https://www.acmicpc.net/problem/12851 코드#include #include #include using namespace std;const int MAX = 100000int main() { // 1 입출력 최적화 sync 끄고 tie 해제 ios::sync_with_stdio(false) cin.tie(nullptr) // 2 시작점 n과 목표 k 입력 int n, k cin >> n >> k // 3 방문 시간과 경로 개수 저장용 벡터 초기화 vector visited(MAX + 1, -1) vector cnt(MAX + 1, 0) queue q // 4 시작점 정보 설정 방문 시간 0, 경로 개수 1, 큐..
-
[C++] 11779번 최소비용 구하기 2Algorithm/Baekjoon 2025. 6. 24. 11:11
문제https://www.acmicpc.net/problem/11779 코드#include #include #include #include using namespace std;using pii = pair;const int MAX = 100'000'000;int dijkstra(const int& s, const int& e, const vector>& graph, vector>& path) { // 우선순위 큐와 비용 벡터 초기화 priority_queue, greater> pq; vector costs(graph.size(), MAX); pq.push({0, s}); costs[s] = 0; // 시작 노드 경로 초기화 path[s].push_back(s);..