일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 스택
- kakao
- 리스트
- Subset
- 순회
- list
- Easy
- leetcode
- bst
- traversal
- sorting
- 트리
- Bit
- Linked List
- 공채
- 카카오
- Math
- Bubble Sort
- stack
- 오픈 채팅방
- 2019 카카오
- tree
- 배열
- Medium
- LinkedList
- 정렬
- binary search tree
- 완전검색
- Today
- Total
목록분류 전체보기 (32)
미리수얌 블로그
https://blog.naver.com/PostView.naver?blogId=clara2063&logNo=222676454693&redirect=Dlog&widgetTypeCall=true&directAccess=false 좋은 글이네요.
저랑 비슷한 닉네임인데 책 이랑 영어 서평을 하네요. 책 내용도 아주 깔끔하게 말하네요. https://blog.naver.com/clara2063/222668315059
문제는 https://www.welcomekakao.com/learn/courses/30/lessons/60058에서 풀어 보실수 있습니다. 이 문제는 재귀함수를 주어진 문장을 잘 따라 할 수 있는지를 시험하는 문제였습니다. class Solution { public String solution(String p) { return balancedParen(p, 0); } // p는 '(' 와 ')' 로만 이루어진 문자열이며 길이는 2 이상 1,000 이하인 짝수입니다. // 문자열 p를 이루는 '(' 와 ')' 의 개수는 항상 같습니다. private String balancedParen(String w, int fromW) { if (fromW == w.length()) return ""; int lef..
문제는 https://www.welcomekakao.com/learn/courses/30/lessons/60057에서 보실수 있습니다. 이 문제는 완전 탐색 느낌인데요. 압축율의 길이가 원래길이의 반 초과면 압축할 이유가 없기 때문에 반 이하 까지만 압축을 해보고 길이를 계산 하면 되겠습니다. class Solution { public int solution(String s) { int minSize = s.length(); for (int compressRate = 1; compressRate 1) sb.append(count); } }
Minimum Time Difference 시간이 hh:mm 형식으로 주어졌을때, 시간의 차이가 가장 적을 때의 값을 분으로 구하여라. 예: ["00:00", "00:15", "23:58", "00:25"] 답: 2. 23:58 분과 00:00 은 2분차이 임. 단, 리스트는 최소 길이가 2이고 시간은 00:00 부터 23:59 까지 가능함. public int findMinDifference(List timePoints) { List minutes = new ArrayList(); Set added = new HashSet(); for (String points: timePoints) { String[] times = points.split(":"); int totalMinutes = Integer.p..
Power of Four 자 저번에 본 Power of Two 를 응용해서 Power of Four 도 풀어보겠습니다. 4 의 거듭제곱들을 보죠 4 16 64 256 보면 1의 자리가 4 6 4 6 으로 패턴이 있음을 알 수 있습니다. 그렇다면 2 의 거듭제곱에다가 일의 자리가 4 나 6으로 끝나면 4의 거듭제곱입니다. public boolean isPowerOfFour(int num) { // power of 2 int one = num % 10; return (num == 1) || (((num & (num - 1)) == 0) && (one == 4 || one == 6)); }
Power of Two 주어진 정수가 2의 거듭제곱 즉 /(2^n/) 으로 나타낼수 있는지 확인하라 이 문제는 bit logic 을 모르면 O(n) 으로 밖에 풀 수 없는 문제 입니다. bit logic 을 설명해 드리죠. 2의 거듭제곱을 이진수로 표현하면 1 = 00001 2 = 00010 4 = 00100 8 = 01000 16 = 10000 패턴이 보이시나요? 이진수가 1이 하나밖에 없으면 2의 거듭제곱입니다. 자 (n - 1) & n 을 하면 어떤 일이 일어날까요? 4 를 예를 들면 4 & 3 00100 00011 00000 이 답이 되는걸 알수있습니다. 2의 거듭제곱은 자신과 자신에서 1을 뺀 수를 & 하면 0이 됩니다. public boolean isPowerOfTwo(int n) { retu..
Set Mismatch 주어진 배열은 원래 1 부터 n 까지 있어야 하지만 오류로 하나의 숫자가 1 부터 n 의 숫자로 변형 되었다. 중복된수와 변형된기 전의 숫자를 배열로 리턴하여라 예: [1, 2, 2, 4] 원래는 [1, 2, 3, 4] 였지만 3이 2로 변형됨. 따라서 return [2, 3] 예: [4, 3, 2, 3] 원래는 1 부터 4 여야 하지만 1이 3으로 변형됨. 따라서 return [3, 1] 이 문제는 푸는 방법이 여러개 입니다. 쉬운 방법은 정렬이겠죠. 저는 배열을 사용해서 해보겠습니다. public int[] findErrorNums(int[] nums) { int k = nums.length; int sum = (k * (k + 1)) / 2; int[] set = new in..