Algorithm/Baekjoon
-
[C++] 11725번 트리의 부모 찾기Algorithm/Baekjoon 2025. 6. 23. 11:09
문제https://www.acmicpc.net/problem/11725 코드#include #include #include using namespace std;void bfs(int v, const vector>& graph) { // 1 결과 저장용 벡터 초기화 크기 graph.size() vector result(graph.size()); // 2 BFS용 큐 선언 queue q; // 3 시작 노드 방문 표시 및 큐에 삽입 부모 노드는 자기 자신으로 표시 q.push(v); result[v] = 1; // 4 BFS 반복 while (!q.empty()) { int v = q.front(); q.pop(); ..
-
[C++] 11660번 구간 합 구하기 5Algorithm/Baekjoon 2025. 6. 22. 11:08
문제https://www.acmicpc.net/problem/11660 코드#include #include using namespace std;int main() { // 1 입출력 최적화 sync 끄고 tie 해제 ios_base::sync_with_stdio(false); cin.tie(nullptr); // 2 n, m 입력 및 prefix_sum 배열(n+1×n+1) 초기화 int n, m; cin >> n >> m; vector> prefix_sum(n + 1, vector(n + 1, 0)); // 3 2D prefix sum 계산 for (int i = 1; i > prefix_sum[i][j]; prefix_sum[i..
-
[C++] 11444번 피보나치 수 6Algorithm/Baekjoon 2025. 6. 21. 11:05
문제https://www.acmicpc.net/problem/11444 코드#include #include using namespace std;const int MOD = 1000000007long long n// **행렬 타입 정의** 2×2 크기의 2차원 벡터using matrix = vector>// **행렬 곱셈 함수** A×B를 MOD 연산하며 계산matrix multiply(const matrix& A, const matrix& B) { matrix C(2, vector(2, 0)) for (int i = 0; i (2, 0)) // **단위 행렬 초기화** for (int i = 0; i 0) { if (exp % 2 == 1) r..
-
[C++] 11404번 플로이드Algorithm/Baekjoon 2025. 6. 20. 11:03
문제https://www.acmicpc.net/problem/11404 코드#include #include using namespace std;int main() { // 1 입출력 최적화 sync 끄고 tie 해제 ios_base::sync_with_stdio(false); cin.tie(nullptr); // 2 상수 MAX 선언 및 n, m 입력 처리 const int MAX = 1000000000; int n, m; cin >> n >> m; // 3 dp 배열 초기화: n×n 크기, 모든 값을 MAX로 설정 vector> dp(n, vector(n, MAX)); // 4 간선 정보 입력 및 최소 비용으로 업데이트 for (int i..
-
[C++] 11054번 가장 긴 바이토닉 부분 수열Algorithm/Baekjoon 2025. 6. 19. 11:01
문제https://www.acmicpc.net/problem/11054 코드#include #include #include using namespace std;int main() { // 1 입력 처리 n 입력받기 int n; cin >> n; // 2 수열 arr 초기화 및 입력 vector arr(n); for (int i = 0; i > arr[i]; } // 3 LIS 계산을 위한 벡터 lis 초기화 vector lis(n, 0); for (int i = 0; i arr[j] && lis[i] lds(n, 0); for (int i = n - 1; i >= 0; i--) { for (int j = n - 1; j > ..
-
[C++] 11053번 가장 긴 증가하는 부분 수열Algorithm/Baekjoon 2025. 6. 18. 10:59
문제https://www.acmicpc.net/problem/11053 코드#include #include #include using namespace std;int main() { // 1 입력 처리: 수열 길이 n 입력 int n; cin >> n; // 2 수열 A 초기화 및 입력 vector A(n); for (int i = 0; i > A[i]; } // 3 LIS 저장용 벡터 선언 vector lis; // 4 수열 순회하며 LIS 길이 계산 for (int i = 0; i 풀이입력 처리cin >> n으로 수열 길이 n 입력받기수열 초기화 및 입력크기 n인 벡터 A 선언 후 for문으로 각 원소 입력받기LIS 저장용 벡터 ..
-
[C++] 10830번 행렬 제곱Algorithm/Baekjoon 2025. 6. 17. 10:57
문제https://www.acmicpc.net/problem/10830 코드#include #include using namespace std;const int MOD = 1000int n// **행렬 타입 정의**: n×n 크기의 2차원 벡터using matrix = vector>// **행렬 곱셈 함수**: A×B를 MOD 연산하며 계산matrix multiply(const matrix& A, const matrix& B) { matrix C(n, vector(n, 0)) for (int i = 0; i (n, 0)) // **단위 행렬 초기화** for (int i = 0; i 0) { if (exp % 2 == 1) result = mu..
-
[C++] 9935번 문자열 폭발Algorithm/Baekjoon 2025. 6. 16. 10:54
문제https://www.acmicpc.net/problem/9935 코드#include #include using namespace std;int main() { // 1 입출력 최적화 ios sync 끄고 tie 해제 ios::sync_with_stdio(false); cin.tie(nullptr); // 2 문자열과 폭탄 문자열 입력 string s, bomb; cin >> s >> bomb; // 3 폭탄 문자열 길이와 마지막 문자 구하기 int n = bomb.size(); char lastChar = bomb[n - 1]; // 4 결과 저장용 스택 문자열 선언 string stack; // 5 입력 문자열 순회하며 처리 ..