Algorithm/BOJ 36

C

[BOJ 6588] 골드바흐의 추측 C++

난이도: Silver 1 번호: 6588 생성일: February 25, 2023 10:21 AM 알고리즘 분류: 소수 판정, 수학, 에라토스테네스의 체, 정수론 언어: C++ 6588번: 골드바흐의 추측 C++ // BOJ6588 골드바흐의 추측 #include #include #include using namespace std; bool prime[1000001]; void eratosthenes(int n) { memset(prime, true, n); for (int i = 2; i * i > n; if (!n) break; bool flag; for (int i = 3; i < n; i += 2) { if (prime[i] && prime[n - i]) { cout

Algorithm/BOJ 2023.02.25

C

[BOJ 13565] 침투 C++

난이도: Silver 2 번호: 13565 생성일: February 24, 2023 3:37 PM 알고리즘 분류: 그래프 이론, 그래프 탐색, 깊이 우선 탐색, 너비 우선 탐색 언어: C++ C++ BFS 메모리 시간 3980 kb 28 ms // BOJ 13565 침투 #include #include using namespace std; int N, M; char map[1002][1002]; bool visited[1002][1002]; const int dX[] = {0, 0, 1, -1}; const int dY[] = {1, -1, 0, 0}; void BFS(int i, int j) { queue Q; Q.push({i, j}); visited[i][j] = true; while (!Q.emp..

Algorithm/BOJ 2023.02.25

C

[BOJ 11234] 양 한마리... 양 두마리... C++

난이도: Silver 2 번호: 11123 생성일: February 22, 2023 4:48 PM 알고리즘 분류: 그래프 이론, 그래프 탐색, 깊이 우선 탐색, 너비 우선 탐색 언어: C++ 11123번: 양 한마리... 양 두마리... C++ BFS를 이용한 풀이 #include #include using namespace std; int T, H, W, res = 0; char node[102][102]; bool visited[102][102]; const int dX[] = {1, -1, 0, 0}; const int dY[] = {0, 0, -1, 1}; void BFS(int i, int j) { // 좌표가 담긴 pair를 담을 queue 생성 queue Q; Q.push({i, j}); v..

Algorithm/BOJ 2023.02.22

C

[BOJ 4963] 섬의 개수 C++

섬의 개수 난이도: Silver 2 번호: 4963 사용 함수, 자료 구조: memset 알고리즘 분류: 그래프 이론, 그래프 탐색, 깊이 우선 탐색, 너비 우선 탐색 언어: C++ 4963번: 섬의 개수 C++ 상하좌우와 대각선 방향까지 8방 탐색을 할 수 있도록 방향배열(dX, dY)을 설정해준다. const int dX[] = {1, -1, 0, 0, 1, 1, -1, -1}; const int dY[] = {0, 0, -1, 1, 1, -1, 1, -1}; 8방 탐색중에 Out of Bound가 발생할수 있는데 해결에는 2가지 방법이 있다. if 조건 추가 if (i = M || j >= N) continue; 그래프 배열 상하좌우에 1칸씩 여유공간을 만들어준다...

Algorithm/BOJ 2023.02.09

C

[BOJ 1012] 유기농 배추 C++

유기농 배추 난이도: Silver 2 번호: 1012 사용 함수, 자료 구조: memset 알고리즘 분류: 그래프 이론, 그래프 탐색, 깊이 우선 탐색, 너비 우선 탐색 언어: C++ 1012번: 유기농 배추 C++ BFS #include #include using namespace std; const int dX[] = {1, -1, 0, 0}; const int dY[] = {0, 0, -1, 1}; int N, M, K, cnt; bool node[51][51]; bool visited[51][51]; void reset() { cnt = 0; for (int i = 0; i < 51; i++) for (int j = 0; j < 51; j++) { node[i][j] = false; visited..

Algorithm/BOJ 2023.02.08

C

[BOJ 2606] S3 바이러스 C++

바이러스 난이도: Silver 3 번호: 2606 알고리즘 분류: 그래프 이론, 그래프 탐색, 깊이 우선 탐색, 너비 우선 탐색 언어: C++ 2606번: 바이러스 C++ #include using namespace std; int N, P; // 컴퓨터가 최대 100개 이므로 path도 최대 100 * 100 bool path[101][101]; bool visited[101]; void DFS(int S) { visited[S] = true; for (int i = 1; i sync_with_stdio(0); cout.tie(0); cin >> N >> P; for (int i = 0; i > a >> b; path[a][b] = true; path[b..

Algorithm/BOJ 2023.02.07

C

[BOJ 2422] S5 한윤정이 이탈리아에 가서 아이스크림을 사먹는데 {C++, Java, Kotlin, Python}

https://www.acmicpc.net/problem/2422 C++ #include using namespace std; // 동적 할당 없이 하기. // bool chk[201][201]; int main(void) { cin.tie(0)->sync_with_stdio(0); cout.tie(0); int N, M, cnt = 0; cin >> N >> M; // 2차원 배열 동적 할당 bool **chk = new bool*[N + 1]; for (int i = 0; i > a >> b; // 뒤집힌 경우에도 체크가 가능하다 (1, 2) == (2, 1) chk[a][b] = chk[b][a] = 1; } for (int i = 1; i

Algorithm/BOJ 2022.12.18

C

[ BaekJoon ] 단계별로 풀기 4. while (Python & Java & JS)

단계별로 풀기 - 4. while 10952 A + B - 5 import sys input = sys.stdin.readline while True: a, b = map(int, input().split()) if a + b: print(a + b) else: break let fs = require(&#39;fs&#39;); let input = fs.readFileSync(__dirname + &#39;/dev/stdin&#39;).toString().split(&#39;\n&#39;); let i = 0; let res = ""; while (true) { let nums = input[i].split(" "); let a = nums[0] / 1; let b = nums[1] / 1; if (a..

Algorithm/BOJ 2021.12.09