목록Algorithm (87)
Dazzling 개발 노트
[백준] 16918 - 봄버맨 (Java) 문제 https://www.acmicpc.net/problem/16918 풀이/후기 처음 생각보다 막히지 않고 잘 풀었는데, 조금씩 정답 출력과 다른 부분이 있어 문제를 찾느라 시간이 좀 걸렸다. bombFunc()에서 if (arr[cx][cy] != 2) 부분을 해주지 않아 자꾸 폭탄이 있는데 터지지 않는(?) 현상이 발생했다. 디버깅으로 열심히 찾아내서 뿌듯함...! 그리고 자바로 제출한 사람들과 비교하니 제출 시간이 좀 걸리길래 StringBuilder로 sysout을 바꾸니 확실히 시간이 확 줄었다!!! 이것 또한 뿌듯! 코드 package GraphTheory; import java.io.*; public class Problem16918 { stat..
[백준] 2740 - 행렬 곱셈 (Java) 문제 https://www.acmicpc.net/problem/2740 2740번: 행렬 곱셈 첫째 줄에 행렬 A의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 순서대로 주어진다. 그 다음 줄에는 행렬 B의 크기 M과 K가 주어진다. 이어서 M개의 줄에 행렬 B의 원소 K개 www.acmicpc.net 풀이/후기 행렬 곱셈 개념이 오랜만이라 다시 찾아보고 풀이하는데, 개념 자체는 어렵지 않았다. 근데 왜 이게 분할정복 문제인지는 의문이었음,, 이 문제를 풀면서 그렇게 느낀 사람이 많은 것 같은데 분할정복으로 풀려면 슈트라센 알고리즘을 이용해야 한다고 한다. .........ㅎ 일단 소스코드 참고용으로만 이해하고 넘어갔다. 코드 ..
문제 풀이/후기 BFS - 큐 이용 * 일반적으로 DFS보다 효율적임 코드 package ThisIsCT; import java.io.*; import java.util.*; public class ch05_02 { //ch.05 DFS/BFS //미로 탈출 static int N,M; static int[][] arr; static Queue q = new LinkedList(); static int[][] dir = {{-1,0}, {1,0}, {0,-1}, {0,1}}; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.i..
문제 풀이/후기 DFS에 대해 이전에 보았던 유튜브 덕분에 많이 어렵진 않았다. 다만 문제를 풀 때 DFS를 이용할지, BFS를 이용할지에 대한 판단이 부족한 것 같다. DFS - 스택 - 재귀함수 이용 코드 package ThisIsCT; import java.io.*; public class ch05_01 { //ch.05 DFS/BFS //음료수 얼려 먹기 static int N, M; static int[][] arr; static int[][] visited; static int[][] dir = {{0,1}, {0,-1}, {1,0}, {-1,0}}; static int cnt = 0; public static void main(String[] args) throws IOException { ..
문제 4 4 1 1 0 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 풀이/후기 백준 로봇청소기 문제와 굉장히 유사했다. 로봇청소기 문제 풀 때 BFS로 접근해서 아주 머리아프게 풀었던 기억이 있는데... 책에선 너무 쉬운 풀이로 되어 있어서 당황했다. 그래도 방향에 대한 접근은 처음에 풀 때보다 바로 감을 잡은 것 같다. 완벽히 생각해내서 풀이하지 못한 것은 또 현타가 오지만.... 그래도 접근성이라도 비슷하게 가져갔으니 전보단 나아졌다 생각해야지... 코드 package ThisIsCT; import java.io.*; import java.util.*; public class ch04_04 { // Ch.04 구현 // 게임 개발 // 백준 - 14503. 로봇청소기와 유사한 문제 sta..
문제 풀이/후기 8가지 방향을 정의하여 해당 방향이 지도 안에서 갈 수 있는 곳이라면 결과값++ 코드 package ThisIsCT; import java.io.*; public class ch04_03 { // Ch.04 구현 // 왕실의 나이트 static int x, y; static int[] dirX = {1, 1, -1, -1, 2, 2, -2, -2}; static int[] dirY = {2, -2, 2, -2, 1, -1, 1, -1}; static int result = 0; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReade..
문제 p.113 예제 4 - 2 시각 풀이/후기 3중 for문을 이용. 숫자를 문자열로 변환하여 .contains()를 이용하면 쉽게 풀이 가능 코드 package ThisIsCT; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; public class ch04_02 { // Ch.04 구현 // 예제 4-2. 시각 static int N; static int cnt = 0; public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReade..
문제 풀이/후기 코드 package ThisIsCT; import java.io.*; import java.util.*; public class ch04_01 { // Ch.04 구현 // 예제 4-1. 상하좌우 static int N; static String[] plan; static int[][] map; static Queue q = new LinkedList(); public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); N = Integer.parseInt(br.readLine()); map = new int[N][N]..