반응형

Til 30

99클럽 코테 스터디 20일차 TIL, 이분법(입국심사)

1. 문제 정의2. 문제 접근처음에는 queue를 사용하여 각각의 심사대를 queue로 정의해서 빼려고 했으나 그럼 공간복잡도가 너무 많이 나올 것 같아서 찾아보니 이분법으로도 해결이 가능해 보였다.3. 문제 풀이두 포인트를 지정한다.두 포인트의 중앙을 구하여 몇명이 통과 가능한지를  정한다.계속 범위를 좁혀나간다.4. 코드import java.util.*;class Solution { public long solution(int n, int[] times) { long answer = 0; Arrays.sort(times); long l = 0; long r = times[times.length-1] * (long) n; // 모든 사람이 ..

99클럽 코테 스터디 19일차 TIL, DP(Count Square Submatrices with All Ones)

1. 문제 정의2. 문제 접근dp 토픽에 속한 것이니 dp로 풀면 될 것 같다.3. 문제 풀이dp 배열을 만든다.점화식을 찾는다.결국 사각형을 만들어야 하는데, 한변의 길이가 1~300 사이의 정사각형이 될 것이고, 사각형을 어떻게 만들것인가를 점화식으로 표현하면 된다.해당 좌표의 값이 0이 아니면서, 사각형을 이루는 dp값의 최솟값에 1을 더해주면 해당 위치의 사각형 갯수가 된다.모든 dp 값을 더해준 것을 리턴한다.4. 코드class Solution { public int countSquares(int[][] matrix) { int ans = 0; int n = matrix.length; int m = matrix[0].length; i..

99클럽 코테 스터디 18일차 TIL, DP(Partition Array for Maximum Sum)

1. 문제 정의2. 문제 접근dp 토픽에 속한 것이니 dp로 풀면 될 것 같다.3. 문제 풀이k길이 만큼의 window가 필요하고, 이 window를 sliding하면서 for-loop의 각 시점마다 최대값을 알아낸다.이전 dp 배열에 내가 알아낸 최댓값을 곱해주고 더해준다.마지막 인덱스의 값을 리턴한다.4. 코드class Solution { public int maxSumAfterPartitioning(int[] arr, int k) { int length = arr.length; int[] dp = new int[length + 1]; for (int i = 1; i = 0; j++) { max = Math.max(max, ..

99클럽 코테 스터디 17일차 TIL, DP(Count Sorted Vowel Strings)

1. 문제 정의2. 문제 접근dp 토픽에 속한 것이니 dp로 풀면 될 것 같다.3. 문제 풀이규칙을 찾는다. 규칙을 통해 점화식을 찾는다. 정답을 도출한다.4. 코드- dp를 통한 풀이class Solution { public int countVowelStrings(int n) { int a, e, i, o, u; a=e=i=o=u=1; for(int k = 1; k  - dfs를 활용한 풀이class Solution { int ans; StringBuilder sb; List result; public int countVowelStrings(int n) { String[] strs = {"a", "e", "i", "o"..

99클럽 코테 스터디 16일차 TIL, DP(All Possible Full Binary Trees)

1. 문제 정의2. 문제 접근완전탐색을 이용해서 풀면 될 것 같다.3. 문제 풀이왼쪽에서부터 노드를 채워준다. 오른쪽에서부터 노드를 채워준다. 모든 노드를 순회하면서 TreeNode를 채워준다.4. 코드/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * t..

99클럽 코테 스터디 15일차 TIL, 탐욕법(구명보트)

1. 문제 정의2. 문제 접근탐욕법에 속해 있으니 greedy방식으로 풀면 될 것 같다.3. 문제 풀이배열을 정렬해준다. 2개의 포인트를 두어 차례대로 탐색한다. 정답을 갱신한다.4. 코드import java.util.*;class Solution { public int solution(int[] people, int limit) { int answer = 0; // 정렬해줘서 해야 최소 몸무게와 최대 몸무게의 사람을 선정해서 이용 가능 Arrays.sort(people); int l = people.length; // 투포인터 이용 int p1 = 0; int p2 = l -1; // 그때마..

99클럽 코테 스터디 14일차 TIL, 탐욕법(조이스틱)

1. 문제 정의2. 문제 접근탐욕법에 속해 있으니 greedy방식으로 풀면 될 것 같다.3. 문제 풀이처음 알파벳부터 시작하여 끝까지 위아래 몇번 움직이는지를 upDown에 더해준다. 순방향과 역방향 이동 중 적은 것을 구해서 갱신해준다. 마지막에 더해준다.4. 코드import java.util.*;class Solution { // int minLeft, minRight; // 역방향 최솟값, 순방향 최솟값 public int solution(String name) { int l = name.length(); int idx = 0; // 다음 값 확인 사용 int upDown = 0; //위아래 움직임 int leftRight = na..

99클럽 코테 스터디 13일차 TIL, 완전탐색( Reverse Odd Levels of Binary Tree)

1. 문제 정의2. 문제 접근dfs를 이용하여 완전탐색을 해주면 될 것 같다.3. 문제 풀이1 인덱스 부터 시작하여 dfs시작한다. depth를 같이 넘겨주어 depth가 홀수이면 양쪽 노드의 값을 교환해준다.4. 코드/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * ..

99클럽 코테 스터디 12일차 TIL, 완전탐색( All Paths From Source to Target)

1. 문제 정의2. 문제 접근dfs를 이용하여 완전탐색을 해주면 될 것 같다.3. 문제 풀이0 인덱스 부터 시작하여 dfs시작한다. lastIndex가 current Index랑 같은 경우 결과를 더해준다.4. 코드class Solution { List> ans; List path; int lastIdx; public List> allPathsSourceTarget(int[][] graph) { ans = new ArrayList(); path = new ArrayList(); lastIdx = graph.length - 1; path.add(0); dfs(graph, 0, path); return a..

99클럽 코테 스터디 11일차 TIL, DFS,BFS(Deepest Leaves Sum)

1. 문제 정의2. 문제 접근 dfs를 이용하여 완전탐색을 해주면 될 것 같다.3. 문제 풀이dfs를 통해 리프 노드까지 이동한다.리프노드가 maxDepth일 경우 sum을 갱신해주고, 다음 maxDepth의 경우에는 sum 에 값을 더해준다.4. 코드/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * ..

반응형