📜 문제 내용 🤔 과정구명보트에는 어차피 최대 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; // ..
📜 문제 내용 🤔 과정접두사와 접미사를 기준으로 단어를 찾게 하고, 가장 큰 인덱스를 반환시켜야한다. 그래서 문자열을 자르는 substring을 이용해 HashMap 안에 문자열을 자른 접두사와 접미사 조합으로 key를 생성하고, value 값으로 인덱스를 넣으면 가장 큰 값이 자동으로 덮여진다는 점을 이용. ✨ 최초 제출 답안class WordFilter { private final HashMap mapPrefSuff; public WordFilter(String[] words) { mapPrefSuff = new HashMap(); for(int i = 0; i 첫 제출 시, substring의 인덱스 착각 이슈로 j 하지만, 위의 코드로 작성하면 "apple..