Algorithm/BOJ 36

C

[BOJ 25416] 빠른 숫자 탐색 C++

난이도: Silver 2 번호: 25416 생성일: March 4, 2023 6:51 PM 알고리즘 분류: 그래프 이론, 그래프 탐색, 너비 우선 탐색 언어: C++ 25416번: 빠른 숫자 탐색 C++ #include #include #include #include using namespace std; int r, c; int graph[5][5]; int dist[5][5]; const int dX[] = {0, 0, -1, 1}; const int dY[] = {1, -1, 0, 0}; int BFS(int r, int c) { queue Q; int seq = 1; Q.push({r, c}); dist[r][c] = seq++; // 시작 위치를 큐에 추가하고, 거리를 1로 설정 while (!Q..

Algorithm/BOJ 2023.03.04

C

[BOJ 1697] 숨바꼭질 C++

난이도: Silver 2 번호: 1697 생성일: March 4, 2023 7:53 PM 알고리즘 분류: 그래프 이론, 그래프 탐색, 너비 우선 탐색 언어: C++ 1697번: 숨바꼭질 C++ #include #include #include using namespace std; int mini = 0xFFFFFFF; int N, K; bool visited[100001]; void BFS() { queue Q; Q.push({N, 0}); visited[N] = true; while (!Q.empty()) { int cur = Q.front().first; int cnt = Q.front().second; Q.pop(); if (cur == K) { mini = cnt; return; } if (cur ..

Algorithm/BOJ 2023.03.04

C

[BOJ 17086] 아기 상어 2 C++

난이도: Silver 2 번호: 17086 생성일: March 3, 2023 7:26 PM 알고리즘 분류: 그래프 이론, 그래프 탐색, 너비 우선 탐색, 브루트포스 알고리즘 알고리즘, 자료 구조: Memoization 언어: C++ 17086번: 아기 상어 2 C++ BFS+ Memoization #include #include #include using namespace std; int N, M, maxDistToShark = -1; bool map[51][51]; bool vst[51][51]; int memo[51][51]; // 메모이제이션 배열 const int dX[] = {1, 1, 0, -1, -1, -1, 0, 1}; const int dY[] = {0, -1, -1, -1, 0, 1, ..

Algorithm/BOJ 2023.03.03

C

[BOJ 1806] 부분합 C++

난이도: Gold 2 번호: 1806 생성일: March 3, 2023 6:05 PM 알고리즘 분류: 누적 합, 두 포인터 언어: C++ 1806번: 부분합 C++ #include #include using namespace std; int main(void) { // 입력 받기 int N, S; cin >> N >> S; // 배열 입력 받기 int arr[N]; for (int i = 0; i > arr[i]; // 투 포인터 알고리즘 사용 int start = 0, end = 0, sum = 0, minLen = N + 1; // start와 end 포인터를 이용하여 배열을 한 번만 순회 while (end < N) { // end 포인터를 증가시키며 합계 구하기 sum ..

Algorithm/BOJ 2023.03.03

C

[BOJ 4195] 친구 네트워크 C++

난이도: Gold 2 번호: 4195 생성일: March 2, 2023 7:14 PM 알고리즘 분류: 분리 집합, 자료 구조, 해시를 사용한 집합과 맵 알고리즘, 자료 구조: Disjoint Set, Union-find 언어: C++ 4195번: 친구 네트워크 C++ // BOJ4195 친구 네트워크 #include #include #include #include using namespace std; // 이름과 인덱스를 매핑할 unordered_map unordered_map uMap; // 부모 노드를 저장할 vector vector parent; // 친구 수를 저장할 vector vector friend_num; // 인덱스에 해당하는 노드의 루트 노드를 반환하는 함수 int getParent(i..

Algorithm/BOJ 2023.03.02

C

[BOJ 11060] 점프 점프 C++

난이도: Silver 2 번호: 11060 사용 함수, 자료 구조: Memoization, Tabulation 생성일: February 28, 2023 3:28 PM 알고리즘 분류: 그래프 이론, 그래프 탐색, 너비 우선 탐색, 다이나믹 프로그래밍 언어: C++ 11060번: 점프 점프 C++ BFS + memoization #include #include #include using namespace std; int N; int arr[1002], memo[1002]; int BFS() { queue Q; memo[0] = 0; Q.push(0); while (!Q.empty()) { int idx = Q.front(); Q.pop(); for (int k = 1; k memo[idx] + 1) { me..

Algorithm/BOJ 2023.02.28

C

[BOJ 21938] 영상처리 c++

난이도: Silver 2 번호: 21938 생성일: February 27, 2023 3:15 PM 알고리즘 분류: 그래프 이론, 그래프 탐색, 깊이 우선 탐색, 너비 우선 탐색 언어: C++ 21938번: 영상처리 C++ BFS 메모리 시간 6924 kb 400 ms #include #include #include using namespace std; int map[1002][1002]; bool visit[1002][1002]; const int dX[] = {0, 0, -1, 1}; const int dY[] = {-1, 1, 0, 0}; int N, M, T, res; void BFS(int i, int j) { queue Q; Q.push({i, j}); visit[i][j] = true; whi..

Algorithm/BOJ 2023.02.27

C

[BOJ 21736] 헌내기는 친구가 필요해 c++

난이도: Silver 2 번호: 21736 생성일: February 25, 2023 4:28 PM 알고리즘 분류: 그래프 이론, 그래프 탐색, 깊이 우선 탐색, 너비 우선 탐색 언어: C++ C++ BFS // BOJ 21736 헌내기는 친구가 필요해 #include #include #include using namespace std; int N, M, res; char map[602][602]; bool visit[602][602]; const int dX[] = {1, -1, 0, 0}; const int dY[] = {0, 0, 1, -1}; void BFS(int i, int j) { queue Q; Q.push({i, j}); visit[i][j] = true; while (!Q.empty())..

Algorithm/BOJ 2023.02.25