반응형

99클럽 30

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클럽 코테 스터디 28일차 TIL, 그리디(Iterator for Combination)

1. 문제 정의2. 문제 접근할 수 있는 만큼 flip을 시켜주면 되므로 greedy를 이용한다.3. 문제 풀이처음 '0'부터 비교 문자를 시작한다.인덱스가 0부터 이전 문자와 비교하여 다르면 count를 1 증가시킨다.count를 리턴한다.4. 코드class Solution { public int minFlips(String target) { char[] array = target.toCharArray(); int count = 0; char prev = '0'; for(int i = 0; i  5. 회고만약 10101 이 우리가 원하는 문자열이라고 생각해보자. 우리는 00000 부터 시작하므로000001111111000010..

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클럽 코테 스터디 23일차 TIL, 그래프(순위)

1. 문제 정의2. 문제 접근플로이드 와샬 알고리즘을 이용하여 노드의 관계를 통해 순위를 구하면 된다.3. 문제 풀이그래프를 만든다.플로이드 와샬 알고리즘을 통해 각 노드의 순위를 구한다.각 노드마다 n-1개의 순위를 알고 있으면 정답을 더해준다.정답을 리턴한다.4. 코드class Solution { public int solution(int n, int[][] results) { int[][] graph = new int[n + 1][n + 1]; int answer = 0; for (int[] e : results) { graph[e[0]][e[1]] = 1; //이겼을 경우 1로 초기화 graph[e[1]][e[..

99클럽 코테 스터디 22일차 TIL, 그래프(가장 먼 노드)

1. 문제 정의2. 문제 접근결국 모든 노드를 그래프 형태로 만들어서 bfs 돌면서 노드들을 탐색하며 노드사이의 길이를 갱신해주면 된다.3. 문제 풀이그래프를 만든다.BFS를 돌면서 모든 노드를 탐색하며 길이를 갱신해준다.최대 깊이의 정답을 리턴한다.4. 코드import java.util.*;class Solution { static boolean[] visit; static List[] list; static int answer; public int solution(int n, int[][] edge) { answer = 0; visit = new boolean[n + 1]; list = new ArrayList[n + 1]; ..

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

반응형