반응형

코딩테스트/leetcode 15

99클럽 코테 스터디 30일차 TIL, Stack(Removing Stars From a String)

1. 문제 정의2. 문제 접근*가 나올때마다 stack에서 제거해주면 될 것 같다.3. 문제 풀이string 을 char 배열로 만들어서 순회한다.'*' 만날때마다 stack에서 맨 위의 문자를 빼준다.정답을 리턴한다.4. 코드class Solution { public String removeStars(String s) { Stack stack = new Stack(); StringBuilder sb = new StringBuilder(); for(char ch:s.toCharArray()){ if(ch == '*'){ stack.pop(); } else { stack..

99클럽 코테 스터디 29일차 TIL, 정렬(Top K Frequent Elements)

1. 문제 정의2. 문제 접근각 숫자가 반복된 숫자를 map에 담아주고 정렬하여 정답을 리턴하면 된다.3. 문제 풀이map에 각 number가 몇번 반복됐는지 담는다.리스트 배열에 옮겨 담는다.정답을 리턴한다.4. 코드class Solution { public int[] topKFrequent(int[] nums, int k) { int[] answer = new int[k]; List[] list = new ArrayList[nums.length + 1]; Map map = new HashMap(); for(int n:nums){ map.put(n,map.getOrDefault(n,0)+1); } fo..

99클럽 코테 스터디 27일차 TIL, 문자열(Iterator for Combination)

1. 문제 정의2. 문제 접근문자열을 이용하라고 되어있지만 나는 dfs를 이용했다.3. 문제 풀이모든 구할 수 있는 문자열의 경우를 구한다.메서드에 맞게 구현해준다.4. 코드class CombinationIterator { List strList; int idx = 0; public CombinationIterator(String characters, int combinationLength) { strList = new ArrayList(); int n = characters.length(); dfs(0, characters,new StringBuilder(),combinationLength); // Collection..

99클럽 코테 스터디 26일차 TIL, 배열(Group the People Given the Group Size They Belong To)

1. 문제 정의2. 문제 접근배열을 이용하라고 했지만 나는 map을 이용하여 풀었다.3. 문제 풀이Map을 정의한다.groupSize의 값을 키로 하여, map에 index값을 추가한다.map의 크기가 groupSize가 되면 ans list 에 추가하고, map을 clear한다.4. 코드class Solution { public List> groupThePeople(int[] groupSizes) { List> ans = new ArrayList(); Map> map = new HashMap(); int l = groupSizes.length; for(int i = 0; i ()); map.get(size).add(i); ..

99클럽 코테 스터디 25일차 TIL, 배열(Find The Original Array of Prefix Xor)

1. 문제 정의2. 문제 접근배열을 이용하면 된다.3. 문제 풀이배열을 정의한다.xor 메서드로 점화식을 세운다.4. 코드class Solution { public int[] findArray(int[] pref) { int[] ans = new int[pref.length]; ans[0] = pref[0]; //초기값 설정 for(int i = 1; i   5. 회고이번 문제는 xor 기능이 java에서 지원하는지를 물어보는 문제인 것 같다. bit연산자의 경우 잘 쓰지 않아서 찾아보긴 했지만, 정말 성능적으로 민감한 경우에는 비트연산자를 써서 메서드를 만든다고 하니 한번씩 살펴보는 것도 좋을 것 같다.

99클럽 코테 스터디 24일차 TIL, 배열(Subrectangle Queries)

1. 문제 정의2. 문제 접근배열을 이용하면 된다.3. 문제 풀이배열을 정의한다.각 요구조건에 맞게 메서드를 정의한다.4. 코드class SubrectangleQueries { int[][] matrix; public SubrectangleQueries(int[][] rectangle) { int r = rectangle.length; int c = rectangle[0].length; matrix = new int[r][c]; for(int i = 0; i   5. 회고이번 문제는 이 난이도가 중간인지 모를 문제이다. 문제는 복잡해보였지만 단순 구현문제였던 것 같다.

99클럽 코테 스터디 21일차 TIL, 이분법(Capacity To Ship Packages Within D Days)

1. 문제 정의2. 문제 접근정해진 기간 내에 어느 무게로 해야 딱 정해진 기간에 끝낼 수 있는지 찾는 문제다. brute force 를 이용하여 완전탐색을 하면 문제를 풀 수 있지만, 그렇게 하면 시간 복잡도가 n의제곱이 되어 시간초과가 날 것이다. 그래서 nxlogn을 쓰면 정해진 시간 내에 문제를 해결할 수 있을 것 같다.3. 문제 풀이두 포인트를 구한다.두 포인트의 중앙을 구하여 정해진 기간 내에 통과가 되는지 확인한다.계속 범위를 좁혀나간다.답을 리턴한다.4. 코드class Solution { public int shipWithinDays(int[] weights, int days) { int sum = 0; int max = 0; for(int ..

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"..

반응형