📜 문제 내용 🤔 과정순서대로 문자열 앞부터 순회하면서, 큰 수가 나오면 작은 값을 계속 삭제하는 것이 포인트. 1 -> 9 (1을 버리고 9를 넣음) -> 2 -> 4 (2를 버리고 4를 넣음) 문자열 number를 char 형태로 쪼개 하나씩 Character 형 stack에 조건에 맞게 넣는다. ✨ 최초 제출 답안 - 🆖 테스트케이스 오답 import java.util.*;class Solution { public String solution(String number, int k) { Stack stack = new Stack(); for(int i = 0; i 0){ k--; stack.p..
📜 문제 내용 🤔 과정구명보트에는 어차피 최대 2명까지 탑승 가능하므로, 통 안에 큰 자갈을 넣고 작은 자갈을 넣듯, 몸무게가 무거운 사람부터 넣고, 작은 사람을 넣을 수 있는 지를 판단해야겠다고 생각했다. 그럼 people 배열을 오름차순으로 정렬하고 시작해야겠다고 판단했다. "사람들을 구출할 수 없는 경우는 없습니다."를 통해 무거운 사람을 넣으면 바로 boat 갯수를 1 증가 시키고 작은 사람을 넣을 수 있는 지 여부를 판단하게 해야겠다고 생각했다. ✨ 최초 제출 답안 - 🤦♂️ 효율성 실패import java.util.*;class Solution { public int solution(int[] people, int limit) { int totalBoat = 0; ..
📜 문제 내용 🤔 과정델타(dr, dc)를 통해 상, 하, 좌, 우를 탐색하면서 DFS를 활용한다. 방문배열 visit과 입력된 map 탐색을 하다가 1을 만나면 DFS 를 진행하고, 진행하면서 단지 수 세기 주변에 1이 더이상 없다면 DFS를 멈추고 해당 단지 수를 list에 추가 그리고 다시 visit 배열과 map 배열 탐색 반복 ✨ 최초 제출 답안import java.util.*;import java.io.*;public class Main { public static int N, cnt; public static String[][] map; public static boolean[][] visit; public static int[] dr = { 0, 0, -1, 1 }; public st..
📜 문제 내용 ✨ 최초 제출 답안import java.io.*;import java.util.*;public class Main { static int N, M; static ArrayList[] family; static boolean[] visit; static int[] depth;; static Queue queue = new LinkedList(); public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new Buff..
📜 문제 내용 🤔 과정모든 경우의 수를 고려해 index를 수학적으로 계산하려했으나, 완전 탐색과는 거리가 멀어서 의도에 맞게 풀어보기로 했다. (모든 단어의 수 : 3905 개 = 5 + 25 + 125 + 625 + 3125) list 형태의 사전을 하나 만들고, 모든 경우의 단어 조합을 DFS 를 통해 add 한다. 그리고 주어진 word를 사전에서 찾는다. ✨ 최초 제출 답안import java.util.*;class Solution { public static String[] vowels = {"A", "E", "I", "O", "U"}; public static final int MAX_LENGTH = 5; public static List dict; // ..