📜 문제 내용 🤔 과정방문 배열과 DFS로 해결할 수 있었다. String으로 계속 확인하는 과정 대신 'X'를 숫자 0으로 바꿔서 정수형 2차원 배열 map에 저장한다. 방문 배열을 확인하면서 dfs 반복 ✨ 최초 제출 답안 - 🙆♂️ 통과import java.util.*;class Solution { public static int[] dr = {1,-1,0,0}; // 델타 public static int[] dc = {0,0,1,-1}; public static int[][] map; // 무인도 식량 지도 public static boolean[][] visited; // 방문배열 public int[] solution(String[] maps) { ..
📜 문제 내용 🤔 과정방문 배열과 DFS로 해결할 수 있었다. ✨ 최초 제출 답안import java.util.*;import java.io.*;public class Main { public static int[] bridge; // 돌다리 배열 public static boolean[] visited; // 방문 배열 public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; int n = Integer.parseInt(br.re..
📜 문제 내용 🤔 과정[startI, endI] 가 Intervals 배열 안에 들어있고, endI보다 크거나 같은 가장 작은 startJ 값을 찾는 문제다. 주어진 endI보다 크거나 같은 첫 번째 위치를 찾는 것이므로 하한값을 찾아야한다. 1차원 정수형 배열 ans에는 default 값으로 -1를 배치한다. hashMap에 ( Key, Value ) = ( startJ, Index ) 를 맵핑하여 put 한다. hashMap에 있는 Key(startJ)들을 오름차순으로 정렬한 ArrayList 형태의 keySet을 생성한다. 이분탐색을 통해 하한값을 찾고, 조건에 맞게 처리 ✨ 최초 제출 답안 - 🆖 테스트케이스 오답class Solution { public int[] findRigh..
📜 문제 내용 🤔 과정주어진 nums 배열의 숫자를 순회하면서 하한선을 찾고 dp 배열을 업데이트 시킨다. 하한선을 찾을 때 이분 탐색을 이용하며 시간복잡도는 O(logN)이다. 그리고 최초의 반복문에 따라 총 시간 복잡도는 O(N logN) 이 된다. ✨ 최초 제출 답안 - 🙆♂️ 통과class Solution { private int[] dp; public int lengthOfLIS(int[] nums) { dp = new int[nums.length]; dp[0] = nums[0]; int maxLen = 1; for(int i = 1; i dp[maxLen - 1]){ dp[maxLen++]..
📜 문제 내용 🤔 과정stack.clear()를 통해 최대한 하나의 stack을 활용하고, 조건문의 수를 최소화하는 방법을 고민했다. 괄호를 회전하는 방법에 대한 고민을 하다가 charAt을 사용한 동적 회전에 대해 알게 되어 활용했다. ✨ 최초 제출 답안 - 🙆♂️ 통과import java.util.Stack;public class Solution { static public int solution(String s) { int sLen = s.length(); int cnt = 0; // 여는 괄호를 넣고, 재사용할 stack Stack stack = new Stack(); for (int i = 0; i 🔗 문제 링크프로..