CodingTest(64)
-
백준(Backjoon) 1012, 유기농 배추
문제풀이 위 문제를 해결하기 위해서 BFS 또는 DFS 알고리즘을 수행합니다. 저는 BFS 알고리즘을 활용하여 문제를 해결하였습니다. 필요한 최소 배추흰지렁이 개수는 BFS 또는 DFS 알고리즘을 수행한 횟수와 같습니다. 소스코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; public class Main { private static int n, m, k;// 세로, 가로, 배추개수 private static int[][] map;// 배추밭, 1 : 배추, 0 : 배추없음 private ..
2021.07.22 -
백준(Backjoon) 7576, 토마토
문제풀이 위 문제를 해결하기 위해서는 그래프 알고리즘은 BFS 그래프 탐색 알고리즘을 활용합니다. 수행과정 토마토 상자안에 존재하는 익은 토마토(1)의 좌표를 큐에 삽입한다. 큐의 사이즈가 0이 될때까지 BFS 탐색을 수행한다. 큐에서 꺼낸 익은 토마토(1)의 인접 위치(상하좌우)를 검사하고 토마토 상자 범위안에 있고 익지 않은 토마토(0)인지를 검사한다. 만약 올바른 인접한 익지 않은 토마토(0)라면 익은 토마토(1)의 익지 않은 토마토(0)의 좌표의 값은 인접탐색 기준 토마토 좌표에 해당하는 값 + 1이 된다. 익지 않은 토마토(0)의 좌표값을 큐에 다시 삽입한다. 2~5의 과정을 반복 수행한다. 예시 예제 입력3을 기준으로 수행한다. 주의점 BFS 탐색을 종료했음에도 불구하고 토마토 상자 안에 익지..
2021.07.22 -
백준(Backjoon) 2667, 단지번호붙이기
문제풀이 본 문제는 그래프 문제로써 저는 BFS 그래프 탐색방법으로 문제를 해결하였습니다. 위 문제를 해결하기 위해서 (0,0)부터 (n,n)까지 순회하고 그 중에서 해당 좌표 (y,x)의 값이 1이고 방문한적이 없다면 BFS 그래프를 수행시키는 방식으로 문제를 해결하였습니다. 다시 정리하면 (0,0) ~ (n,n) 까지 값을 검사한다. 값이 1이고 방문한적이 없다면 해당 좌표(y,x)에 대해서 BFS 그래프 탐색을 수행한다. BFS 그래프 탐색의 결과로 해당 단지의 집의 개수를 구할 수 있다. BFS 그래프 탐색을 수행한 횟수만큼 총 단지의 개수를 구한다. 소스코드 import java.io.BufferedReader; import java.io.IOException; import java.io.Inp..
2021.07.21 -
백준(Backjoon) 7567, 그릇
문제풀이 입력받은 문자열의 0번째 그릇은 무조건 10으로 저장한다. 그리고 1번째 요소 이후부터는 이전 그릇과 비교하여 같은 방향이면 +5cm 추가하고 다른 방향이면 +10cm 추가한다. 소스코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static int solution(String str[]) { int answer = 0; int height = 0; for(int i=0;i
2021.07.21 -
백준(Backjoon) 1373, 2진수 8진수
문제풀이 입력받은 2진수 문자열에서 뒤쪽부터 3개씩 잘라서 그에 맞는 8진수로 변경하여 따로 누적시킨다. 그리고 최종적으로 누적한 문자열 변수를 거꾸로 변경하면 최종 8진수가 될 것이다. 주의할 점은 3개씩 잘라서 변환시키다가 숫자가 1개(1) 또는 2개(11) 남을 수 있다. 이 경우 앞자리에 0을 채워준다. 소스코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map; public class Main { private static Map map = new HashMap(){ { put("000", "0")..
2021.07.20 -
백준(Backjoon) 7568, 덩치
문제풀이 몸무게와 키의 값을 담을 Person 클래스를 정의하고 배열로 저장한다. 그리고 이중 반복문을 통해서 키와 몸무게를 비교하고 rank 필드 멤버를 증가시킨다. 소스코드 public class Main { static class Person { int rank=1; int weight;// 몸무게 int height;// 키 Person(int weight, int height) { this.weight = weight; this.height = height; } @Override public String toString() { return "Person [rank=" + rank + ", weight=" + weight + ", height=" + height + "]"; } } public s..
2021.07.12