- 알고리즘 분류 : BFS - 사용 언어 : JAVA - 문제 요점 하루가 지날 때 마다 익은 토마토로부터 상하좌우위아래 인접한 토마토가 익게 된다. 모든 토마토가 익으려면 최소 몇 일인 지 구하는 문제 저장될 때부터 모든 토마토가 익어있으면 0 출력 모든 토마토가 익을 수 없으면 -1 출력 필자는 3차원 배열과 토마토의 갯수를 비교하여 풀이 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java..
Algorithm
- 알고리즘 분류 : DFS/구현 - 사용 언어 : JAVA 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static int[][] map = new int[9][9]; public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); for(int i=0; i
- 알고리즘 분류 : 다익스트라 알고리즘 - 사용 언어 : JAVA 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { static class Pos implements Comparable{ int idx; int length; public Pos(int idx, int length) { this.idx = idx; this.length = length; } @Override public int compareTo(Pos o) { return this.length - o.length; } ..
- 알고리즘 분류 : Stack - 사용 언어 : JAVA - 문제 요점 배달 스택과 수거 스택 2개를 이용 특정 집까지 가는 경우 특정 집으로 갈 때는 배달을, 되돌아 올 때는 수거를 할 수 있으므로 최대 용량 치까지 계산 배달 스택과 수거 스택 중 더 먼 집을 기준으로 2배 곱한 후 거리 계산. (왕복이기에 2배) 배달 스택과 수거 스택 둘 중 하나라도 없을 수 있으니 이에 대한 대비 필요 (효율성 테스트가 없어 생각나는대로 작성한 코드이니 참고용으로 봐주시면 감사하겠습니다.) 소스 설명은 주석을 참고해주세요. import java.util.Stack; // Link : https://school.programmers.co.kr/learn/courses/30/lessons/150369 public c..
- 알고리즘 분류 : 구현, 그리디 - 사용 언어 : JAVA - 문제 요점 - 우선순위 큐 이용 - 우선순위 정렬 기준 : 급여 내림차순, 날짜 내림차순 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.PriorityQueue; import java.util.StringTokenizer; public class Main { static class Task implements Comparable { int pay; int date; public Task(int pay, int date) { this.pay = pay; thi..
- 알고리즘 분류 : DFS, 구현 - 사용 언어 : JAVA - 문제 요점 - 어느 알파벳이 가장 큰 영향을 가지는 지 확인 (자릿수에 10을 거듭제곱하여 확인. Math.pow() ) - 우선순위 큐를 이용해서 가장 영향도가 높은 알파벳부터 나오도록 설정 - 가장 영향도가 높은 알파벳에게 가장 높은 숫자인 9를 주고, 다음 알파벳은 8 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Iterator; import java.util.PriorityQueue; public cla..
- 알고리즘 분류 : 구현, 그리디 - 사용 언어 : JAVA 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.PriorityQueue; import java.util.StringTokenizer; public class Main { static class Homework implements Comparable{ int dueDate; int score; public Homework(int dueDate, int score) { this.dueDate = dueDate; this.score = score; } // 정렬 기준..
- 알고리즘 분류 : 우선순위큐, 구현 - 사용 언어 : JAVA - 문제 요점 - 내 뒤에 있는 센서랑 거리 계산 후 우선순위 큐에 넣어서, 가장 큰 거리 차이를 얻음 - 센서 간의 총 길이 - (위에서 구한 큰 거리 순서대로. 집중국의 -1 갯수만큼) 거리 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.PriorityQueue; import java.util.StringTokenizer; public class Main { public static class Pos imple..