13549. 숨바꼭질3 (Java)
·
Algorithm & Data Structures/BOJ
단순 BFS 문제였다. *2를 할때는 cnt를 증가시키지않고 푸는것이 핵심 package Boj; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Main { static int min = Integer.MAX_VALUE; static int n, k; static boolean[] visited; static int max = 100000; public static class Node { int x; int t..
2206. 벽부수고 이동하기 (Java)
·
Algorithm & Data Structures/BOJ
BFS의 틀을 깨어주는 문제였다. 보통 나 같은 초보자는 BFS든 DFS든 하나의 공식이 정해져있고 그 공식을 벗어나는걸 힘들어 한다. 하지만 이문제로 인해서 3차원배열로 Visited체크하는것과 qsize를 만들어주는것 모두 하나의 방법일 뿐 공식이 아닐수 있다는 것을 깨닫게 되었다. package BOJ; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayDeque; import java.util.Queue; import java.util.StringTokenizer; class Locate { int x, y, cnt, wall; public L..
Lv2. 124 나라의 숫자 (Java)
·
Algorithm & Data Structures/Programers
package Programmers; import java.util.*; class Solution { public String solution(int n) { Stack stack = new Stack (); String answer = ""; while(n != 0) { int temp = n % 3; if(temp == 0) { temp = 4; n = n / 3 - 1; } else { n /= 3; } stack.push(temp); } while(!stack.isEmpty()){ answer+=stack.pop(); } return answer; } }
11404. 플로이드 (Java)
·
Algorithm & Data Structures/BOJ
이름에서 알수 있듯이 위 문제는 플로이드 워셜 의 알고리즘을 사용한다. 플로이드 워셜의 특징으로는 모든간선의 모든정점to 모든정점의 최소 거리를 체크한다. 음의 간선 사용 가능 3중 for문을 돈다 사용해본 결과 foreach 문 을 쓸게 아니라면 아무래도 인접행렬 을 사용하는게 편해보임 but 시간이 좀 걸려보임 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static int N, M; static int[][] bus; static int[][] Graph; static int INF ..
Lv2. 요격 시스템 (Java)
·
Algorithm & Data Structures/Programers
백준의 회의실 배정과 같은 알고리즘이었던것 같다. 다만 IDE를 못쓰는게 힘들긴 했다. 적응이 필요할 듯 싶다. import java.util.*; class Solution { public int solution(int[][] targets) { int answer=0; Arrays.sort(targets,(o1,o2)->{ if(o1[1] == o2[1]) return o1[0]-o2[0]; return o1[1]-o2[1]; }); int end = targets[0][1]; answer++; for(int[] tar : targets){ if(tar[0] >= end){ end = tar[1]; answer++; } } return answer; } }
9465. 스티커 (Java)
·
Algorithm & Data Structures/BOJ
이문제는 DP(Dynamic Programing) 기법을 이용하여 푸는 문제였으며 입력받는 2차원 배열 map과 동시에 같은 크기의 DP 배열을 생성하여 각 행마다 최댓값을 구하여 넣어주는 식의 코딩을 하였고 마지막 N-1 행에서 0번열 1번열의 최댓값을 비교하여 답을 출력하는 방법으로 코딩하였다. package BOJ; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static int[][] DP, map; static int N; public static void main(String[]..
4485. 녹색 옷을 입은 애가 젤다지? (Java)
·
Algorithm & Data Structures/BOJ
다익스트라의 개념을 알수 있는 문제다. 다익스트라는 BFS에서 Queue를 사용하지만 Compareable과 priority queue를 사용하여 BFS 처럼 모든 경우를 보는 것이 아닌 가중치가 최저인 값을 우선적으로 확인한다. 고로 BFS보다 빠른 것으로 나타난다. 음의 가중치일때는 사용할 수 없으며 출발점과 도착점이 정해진 경우에 사용가능한 다익스트라 알고리즘 이었다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.PriorityQueue; import java.util.StringTokenizer; public class b4485{ static c..
5607. 조합 (Java)
·
Algorithm & Data Structures/SWEA
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.StringTokenizer; public class Solution{ static int T; static long dp[]; static int n, r; static final int P = 1234567891; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(n..
17144. 미세먼지 안녕! (Java)
·
Algorithm & Data Structures/BOJ
위와 같은 시뮬레이션 문제였으며, 이문제는 위와 같이 순서가 모두 주어져 있어 함수로 구현만 하면 되는 문제였다. 공기청정기 작동 부분이 꽤 시간이 걸렸다. package BOJ; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; import java.util.StringTokenizer; public class Main{ static int[][] map, copy; static int count = 0, R, C, T, answer=0; static int[] dx = {-1,0,1,0}, xy; static int[] dy = {0,1,0,-..