Banner

My Tech Blog (코딩테스트)

오늘의 명언
📑 1. 문제설명💡 2. 접근방식만들어줄 메서드는 4가지 - 오프닝 끝 위치로 이동하는 `SkipOp()` 메서드- 명령이 "next" 이면 10초 뒤로 이동하는 `moveToNext()`메서드- 명령이 "prev" 이면 10초 앞으로 이동하는 `moveToPrev()` 메서드- String 타입으로 입력 받은 시간을 LocalTime으로 형변환 하는 `getTime()`메서드 "mm:ss" 형식으로 받아온 시간을 ":" 기준으로 분, 초 단위로 나누어 배열에 저장한다.LocalTime이 가진 메서드로 시간 계산을 하고, 반환할 때는 다시 "mm:ss" 형식으로 포매팅 해서 반환해 주어야 함.현재 시간이 오프닝 위치 안에 있을 때는 자동으로 SkipOp() 메서드가 호출된다. ⭐ 3. 정답코드imp..
📑 1. 문제설명💡 2. 접근방식 dfs(깊이 우선 탐색)으로 A,E,I,O,U로 조합해서 만들 수 있는 모든 단어를 리스트에 넣어 준다.그리고 list의 사이즈만큼 반복문을 돌리면서 word랑 일치하는 단어가 들어 있는 칸의 인덱스를 반환한다.  ⭐ 3. 정답코드import java.util.*;class Solution { static List list; static String [] words = {"A", "E", "I", "O", "U"}; public int solution(String word) { int answer = 0; list = new ArrayList(); dfs("", 0); ..
📑 1. 문제설명 입출력 예 설명입출력 예 #1다음 그림은 주어진 입력을 해결하는 방법 중 하나를 나타낸 것입니다. 4번과 7번을 연결하는 전선을 끊으면 두 전력망은 각 6개와 3개의 송전탑을 가지며, 이보다 더 비슷한 개수로 전력망을 나눌 수 없습니다.또 다른 방법으로는 3번과 4번을 연결하는 전선을 끊어도 최선의 정답을 도출할 수 있습니다. 입출력 예 #2다음 그림은 주어진 입력을 해결하는 방법을 나타낸 것입니다.2번과 3번을 연결하는 전선을 끊으면 두 전력망이 모두 2개의 송전탑을 가지게 되며, 이 방법이 최선입니다. 입출력 예 #3다음 그림은 주어진 입력을 해결하는 방법을 나타낸 것입니다. 3번과 7번을 연결하는 전선을 끊으면 두 전력망이 각각 4개와 3개의 송전탑을 가지게 되며, 이 방법이 최..
📑 1. 문제설명 💡 2. 나의 코드 문제에서 구해야 하는 것 - 최대 몇 번 던전을 돌 수 있는지 횟수 즉, 존재하는 던전들을로 도는 순서 바꿔가면서 가능한 모든 조합을 만든다.만약 A,B,C 던전이 있다면? `A-B-C`,`A-C-B`,`B-A-C`,`B-C-A`, `C-A-B`, `C-B-A` 조합을 모두 순회하면서최대로 몇 번 돌 수 있는지 카운팅 해 준다. 백트래킹과 DFS(깊이 우선 탐색)백트래킹과 dfs로 모든 경우의 수를 조합 해 준다.depth 는 탐색횟수이다.구하는 순간 answer = Math.max(answer, depth) 해서 최댓값 업데이트class Solution { // 전역 변수 선언 public static int answer; // 최대 던전 탐험 횟수 ..
📑 1. 문제설명💡 2. 접근방식일단 숫자 사이의 규칙을 찾아주었다.  노트에 해서 좀 지저분한데brown + yellow를 해 준 뒤 그 숫자의 약수를 모두 찾아낸다. 약수들의 중간값이 찾고자 하는 숫자이다.대신, 입출력 예를 보면 더 큰 숫자가 가로이고 더 짧은 숫자가 세로다. brownyellowreturn102[4, 3]81[3, 3]2424[8, 6] 여기서 brown + yellow 해 주면 각각10+2 = 128 + 1 = 924 + 24 = 48 12의 약수 [1, 2, 3, 4, 6, 12]9의 약수 [1, 3, 9] 48의 약수 [1, 2, 3, 4, 6, 8, 12, 16, 24, 48] 중 정답은 약수의 갯수가 짝수면 가운데 있는 숫자 두 개 이다. (출력은 큰 숫자 먼저 해야 ..
📑 1. 문제설명 입출력 예 설명 예제 #1[1, 7]으로는 소수 [7, 17, 71]를 만들 수 있습니다.예제 #2[0, 1, 1]으로는 소수 [11, 101]를 만들 수 있습니다.11과 011은 같은 숫자로 취급합니다.💡 2. 접근방식(1) 소수 판별하는 메서드 isPrime 만들기public static boolean isPrime(int num) { if (num Math.sqrt()주어진 함수로 제곱근 만드는 메서드 Square root를 줄여서 sqrt소수인지 판별하는 방식 : 에라토스테네스의 체 (2) 순열 생성하는 메서드 generatePeremutations 만들기// 순열을 생성하는 재귀 메서드public void generatePermutations(String p..
1. 문제 설명2. 접근방식ECOLI_DATA는 부모-자식간의 계층 관계를 이루고 있기 때문에 각 세대별로 자식이 없는 개체의 수를 출력하려면 재귀 CTE를 사용해서 대장균의 세대generation)를 계산해 주어야 한다. WITH RECURSIVE 블록을 먼저 지정 해 주고, 블록 바깥에서 세대별로 자식이 없는 개체수를 조회하는 쿼리를 짜 주면 된다. WITH RECURSIVE 블록은 또 두 부분으로 나뉘는데, 먼저, PARENT_ID IS NULL인 조건으로 데이터를 조회해서 1세대(AS GENERATION)를 규정 해 준다. 두 번째로 할 일은, 이 1세대 컬럼을 기준으로 +1을 해서 계층 구조를 조회 하는 것이다. 즉, 부모 개체로부터 자식의 세대 수를 계산 해 주는 것이다. Generation ..
어려워서 미루다가 못 푼 문제가 2개 있었다. Lv4 문제 1개랑 Lv5 문제 1개이다. 난이도 최상인 만큼, 문제 읽기도 전에 풀기가 두려운 마음이 있었다. 이 문제는 왠지 오랫 동안 노트북 앞에 앉아서 머리 많이 쓰고 고민해 봐야 될 것 같아서 하기싫었다. MySQL에서는 START WITH CONNECT BY가 안된다는 거 알고부터는 또 새로운거 배우기 싫어서 미뤘는데 오늘 얼른 끝내버리고 자야지1. 문제설명2. 접근방식처음에는 어려워 보여서 문제를 읽고 뭘 구해야 하는지 생각의 흐름을 한글로 받아 적어 봤다. PARENT_ID가 NULL이면 1세대이다. PARENT_ID가 NULL인 ID를 부모로 가지는 행이 2세대 이다. PARENT_ID가 NULL인 ID를 부모로 가지는 행의 ID를 부모로 가..
상단으로