분류 전체보기
-
https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 2573, 빙산 [ 난이도 : 골드 4 ] 이번 문제는 BFS & DFS, 그래프 이론을 사용해서 풀어보겠다. # Process input : 입력받은 값들을 기반으로 area 배열에 값을 넣어주는 것으로 시작한다. static void input() { N = scan.nextInt(); M = scan.nextInt(); area = new int[N][M]; for(int i=0;i
(JAVA) [BOJ]백준 2573번, 빙산https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 2573, 빙산 [ 난이도 : 골드 4 ] 이번 문제는 BFS & DFS, 그래프 이론을 사용해서 풀어보겠다. # Process input : 입력받은 값들을 기반으로 area 배열에 값을 넣어주는 것으로 시작한다. static void input() { N = scan.nextInt(); M = scan.nextInt(); area = new int[N][M]; for(int i=0;i
2023.05.09 -
https://www.acmicpc.net/problem/18404 18404번: 현명한 나이트 첫째 줄에 N과 M이 공백을 기준으로 구분되어 자연수로 주어진다. (1 ≤ N ≤ 500, 1 ≤ M ≤ 1,000) 둘째 줄에 나이트의 위치 (X, Y)를 의미하는 X와 Y가 공백을 기준으로 구분되어 자연수로 주어진다. ( www.acmicpc.net 18404, 현명한 나이트 [ 난이도 : 실버 1 ] 이번 문제는 BFS 를 사용해서 풀어보겠다. BOJ [7562] 나이트의 이동과 굉장히 유사한 문제이기 때문에 참조하면 좋을 것 같다. https://seung-seok.tistory.com/57 (JAVA) [BOJ]백준 7562번, 나이트의 이동 https://www.acmicpc.net/problem/..
(JAVA) [BOJ]백준 18404번, 현명한 나이트https://www.acmicpc.net/problem/18404 18404번: 현명한 나이트 첫째 줄에 N과 M이 공백을 기준으로 구분되어 자연수로 주어진다. (1 ≤ N ≤ 500, 1 ≤ M ≤ 1,000) 둘째 줄에 나이트의 위치 (X, Y)를 의미하는 X와 Y가 공백을 기준으로 구분되어 자연수로 주어진다. ( www.acmicpc.net 18404, 현명한 나이트 [ 난이도 : 실버 1 ] 이번 문제는 BFS 를 사용해서 풀어보겠다. BOJ [7562] 나이트의 이동과 굉장히 유사한 문제이기 때문에 참조하면 좋을 것 같다. https://seung-seok.tistory.com/57 (JAVA) [BOJ]백준 7562번, 나이트의 이동 https://www.acmicpc.net/problem/..
2023.05.06 -
https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net 7562, 나이트의 이동 [ 난이도 : 실버 1 ] 이번 문제는 체스말의 이동횟수를 측정해야 하므로 BFS (너비 우선 탐색)를 사용해서 풀어보겠다. # Process input : 테스트 케이스 횟수 T를 입력받고, 체스판의 크기를 입력 받는다. 체스판의 크기를 기반으로 dist를 생성해주고 시작좌표화 목적좌표를 입력받는다. 여기서 dist[i][j] 는 (i,j) 까지 최소 이동횟수를 입력할 것..
(JAVA) [BOJ]백준 7562번, 나이트의 이동https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net 7562, 나이트의 이동 [ 난이도 : 실버 1 ] 이번 문제는 체스말의 이동횟수를 측정해야 하므로 BFS (너비 우선 탐색)를 사용해서 풀어보겠다. # Process input : 테스트 케이스 횟수 T를 입력받고, 체스판의 크기를 입력 받는다. 체스판의 크기를 기반으로 dist를 생성해주고 시작좌표화 목적좌표를 입력받는다. 여기서 dist[i][j] 는 (i,j) 까지 최소 이동횟수를 입력할 것..
2023.05.06 -
https://www.acmicpc.net/problem/3184 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 3184, 양 [ 난이도 : 실버 1 ] 이번 문제는 그래프 탐색과 BFS & DFS를 사용해서 풀어보겠다. 우선적으로 DFS 를 사용해서 풀어보겠다. # Process main : R 과 C 기반으로 전체좌표를 String[][] 의 area 라는 변수에 담아주고 방문 여부를 체크할 visit 을 생성해준다. static void input() { R = scan.nextInt()..
(JAVA) [BOJ]백준 3184번, 양https://www.acmicpc.net/problem/3184 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 3184, 양 [ 난이도 : 실버 1 ] 이번 문제는 그래프 탐색과 BFS & DFS를 사용해서 풀어보겠다. 우선적으로 DFS 를 사용해서 풀어보겠다. # Process main : R 과 C 기반으로 전체좌표를 String[][] 의 area 라는 변수에 담아주고 방문 여부를 체크할 visit 을 생성해준다. static void input() { R = scan.nextInt()..
2023.05.06 -
https://www.acmicpc.net/problem/4963 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 4963, 섬의 개수 이번 문제는 깊이 우선 탐색을 사용해서 풀어보겠다. # Process input : 섬의 넓이를 입력받으면 int 형 2차원 배열로 생성해준다. static void input() { W = scan.nextInt(); H = scan.nextInt(); area = new int[H][W]; visit = new boolean[H][W]; for(int i=0..
(JAVA) [BOJ]백준 4963번, 섬의 개수https://www.acmicpc.net/problem/4963 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 4963, 섬의 개수 이번 문제는 깊이 우선 탐색을 사용해서 풀어보겠다. # Process input : 섬의 넓이를 입력받으면 int 형 2차원 배열로 생성해준다. static void input() { W = scan.nextInt(); H = scan.nextInt(); area = new int[H][W]; visit = new boolean[H][W]; for(int i=0..
2023.05.05 -
https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net 11724, 연결 요소의 개수 이번 문제는 그래프 이론 과 DFS 를 사용해서 풀어보겠다. # Process main : 정점의 개수와 간선의 개수가 주어진다. 정점의 개수만큼 ArrayList 를 만들어주고 양방향 간선을 표시해주면 된다. N = scan.nextInt(); M = scan.nextInt(); adj = new Arr..
(JAVA) [BOJ]백준 11724번, 연결 요소의 개수https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net 11724, 연결 요소의 개수 이번 문제는 그래프 이론 과 DFS 를 사용해서 풀어보겠다. # Process main : 정점의 개수와 간선의 개수가 주어진다. 정점의 개수만큼 ArrayList 를 만들어주고 양방향 간선을 표시해주면 된다. N = scan.nextInt(); M = scan.nextInt(); adj = new Arr..
2023.05.03 -
https://www.acmicpc.net/problem/2583 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 2583, 영역 구하기 [ 난이도 : 실버 1 ] 이번 문제는 그래프 이론과 DFS 를 사용해서 풀이해보겠다. 눈금이 그어진 영역을 제외한 모든 영역의 사이즈 (영역 하나의 넓이가 1) 를 구하면 쉽게 풀이할 수 있는 문제이다. # Process main : 입력받은 값의 영역을 모두 true 로 표기해서 눈금이 그어진 영역을 표시해준다. M = scan.nextInt(); N = ..
(JAVA) [BOJ]백준 2583번, 영역 구하기https://www.acmicpc.net/problem/2583 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 2583, 영역 구하기 [ 난이도 : 실버 1 ] 이번 문제는 그래프 이론과 DFS 를 사용해서 풀이해보겠다. 눈금이 그어진 영역을 제외한 모든 영역의 사이즈 (영역 하나의 넓이가 1) 를 구하면 쉽게 풀이할 수 있는 문제이다. # Process main : 입력받은 값의 영역을 모두 true 로 표기해서 눈금이 그어진 영역을 표시해준다. M = scan.nextInt(); N = ..
2023.05.02 -
https://www.acmicpc.net/problem/1012 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 1012, 유기농배추 [ 난이도 : 실버 2 ] 이번 문제는 그래프 탐색 & DFS 를 사용하여 풀어보겠다. # Process main : 이번 문제에서 주의해야 할 것은 좌표를 (0,1) (1,3) 과 같이 주는데 가로&세로의 범위를 잘 생각해야 한다. 지역을 나타내는 area 와 방문 여부를 확인하는 visit 배열을 먼저 생성해주고 배추의 위치는 area 에 값을 1로 설정해준..
(JAVA) [BOJ]백준 1012번, 유기농배추https://www.acmicpc.net/problem/1012 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 1012, 유기농배추 [ 난이도 : 실버 2 ] 이번 문제는 그래프 탐색 & DFS 를 사용하여 풀어보겠다. # Process main : 이번 문제에서 주의해야 할 것은 좌표를 (0,1) (1,3) 과 같이 주는데 가로&세로의 범위를 잘 생각해야 한다. 지역을 나타내는 area 와 방문 여부를 확인하는 visit 배열을 먼저 생성해주고 배추의 위치는 area 에 값을 1로 설정해준..
2023.04.28