📜 문제 내용 🤔 과정0번 방부터 i 번 방까지 모든 방을 방문하는 데 걸리는 최소 날짜를 저장한 dp 배열을 생성.이때, 최소 날짜가 굉장히 커질 수 있으므로 overflow 문제를 방지하기 위해서 문제에서 주어진 10의 9승 + 7 을 MOD 변수에 넣고 계산 수행. int 형의 범위를 초과할 수 있으므로 long 자료형을 이용한다. i 번 방을 방문하는 데 걸리는 날을 계산하기 위해서는 이전 방인 i - 1 번 방까지의 방문 최소 날짜인 dp[i - 1] 값과, nextVisit[i - 1] 번 방으로 돌아가야 하는 날이 필요하다. dp[i - 1] 값은 이미 알고 있는 값으로 0 번 방부터 i - 1 번 방까지 모든 방을 방문하는 데 걸리는 최소 날짜이다. 초기 상태 : 우리는 i - 1 번 ..
📜 문제 내용 🤔 과정장애물도 없고, 도착 지점에 대한 모든 경우의 수를 찾는 문제이다. ✨ 최초 제출 답안 - 🙆♂️ 통과class Solution { public int uniquePaths(int m, int n) { int[][] wayCnt = new int[m][n]; Arrays.fill(wayCnt[0],1); for(int i = 1; i 🔗 문제 링크LeetCode - Unique Paths (링크)
📜 문제 내용 🤔 과정피로도를 담은 2차원 배열을 생성하고, 광물에 따른 피로도를 계산한다. 계산된 피로도를 내림차순으로 정렬하고 가지고 있는 곡괭이를 가지고 최솟값을 도출. ✨ 최초 제출 답안 - 🙆♂️ 통과import java.util.*;class Solution { // 피로도 표 static int[][] fatigueTable = {{1, 1, 1}, {5, 1, 1}, {25, 5, 1}}; public int solution(int[] picks, String[] minerals) { int answer = 0; List fatigueList = new ArrayList(); // 곡괭이의 총 개수 계산 ..
📜 문제 내용 🤔 과정남아있는 적의 수를 저장하고자 최대힙으로 구현한 PriorityQueue를 이용.기본적으로는 최소힙이지만, 최대힙으로 구현하기 위해 PriorityQueue의 비교자를 (a, b) -> b - a 로 설정.그러면 힙은 큰 값이 먼저 나오게 구성된다. ✨ 최초 제출 답안 - 🙆♂️ 통과import java.util.*;class Solution { public int solution(int n, int k, int[] enemy) { // 최대 힙을 구현하기 위해 음수를 저장하는 우선순위 큐 사용 PriorityQueue pq = new PriorityQueue((a, b) -> b - a); int totalSum = ..
📜 문제 내용 🤔 과정백트래킹으로 숫자 비교를 하면서 진행한다. 숫자 사용 여부의 Boolean 배열 used, 부등호가 담긴 String 배열 signs 을 생성해 확인하면서 진행. ✨ 최초 제출 답안 - 🙆♂️ 통과import java.util.*;import java.io.*;public class Main { public static int k; public static String[] signs; public static boolean[] used = new boolean[10]; public static List result = new ArrayList(); public static void main(String[] args) throws IOExceptio..