일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- dynamic programming
- bit manipulation
- SQL
- Counting
- Tree
- 자바
- two pointers
- hash table
- greedy
- Binary Tree
- Data Structure
- 코딩테스트
- 파이썬
- 코테
- Matrix
- geometry
- sorting
- array
- implement
- simulation
- Method
- Math
- Stack
- Class
- Binary Search
- java
- 구현
- Number Theory
- database
- string
- Today
- Total
목록hash table (105)
코린이의 소소한 공부노트
1. Input 1) int[] nums 2) int k 2. Output 1) 다음을 만족하는 두 정수가 있다면 true, 없다면 false를 반환 // 조건: 서로 다른 i, j에 대하여 - nums[i] == nums[j] - abs(i-j)
1. Input 1) String s 2) String t 2. Output 1) s와 t의 구조가 같으면 true, 다르면 false를 반환 - 구조가 같다는 것은, s의 알파벳들이 t에 있는 것으로 대체됐을 때 같은 단어가 된다는 것을 의미한다. 3. Constraint 1) 1 Output: false 5. Code 1) 첫 코드(2023/01/23) import java.util.*; int num = 0; String numS = ""; HashMap ss = new HashMap(); for(int i=0 ; i
1. Input 1) int n 2. Output 1) n이 happy number라면 true, 아니면 false 반환 // happy number란 - 각 자릿수의 제곱의 합을 구한다. - 합이 1이 될 때까지 반복한다. 1이 아니라면 다시 각 자릿수의 제곱의 합을 구한다. - 1이 되면 happy number가 된다. 3. Constraint 1) 1 0){ sum += (int)Math.pow(num%10, 2); num /= 10; } num = sum; sum = 0; if(num==1) answer = true; else if(!list.contains(num)) list.add(num); else duplicate = true; } return answer; - 성능이 별로긴 하지만, 딱히..
1. Input 1) String s 2. Output 1) s에서 처음으로 2번 나오는 문자를 반환 3. Constraint 1) 2 Output: "d" 5. Code 1) 첫 코드(2022/08/04) import java.util.*; List list = new ArrayList(); char c = ' '; for(int i=0 ; i
1. Input 1) int[] ranks - ranks[i]는 i번째 카드의 숫자를 뜻한다. 2) char[] suits - suits[i]는 i번째 카드의 무늬를 뜻한다. 2. Output 1) 갖고 있는 카드를 이용해서 아래 타입들을 만들어볼 때, 가장 높은 타입을 문자열로 반환 // 타입 - "Flush": 5장 모두 같은 무늬 - "Three of a Kind": 3장이 같은 숫자 - "Pair": 2장이 같은 무늬 - "High Card": 아무 카드 1장 3. Constraint 1) ranks.length == suits.length == 5 2) 1
1. Input 1) int[] nums 2. Output 1) nums에 아래 연산을 최대한 많이 수행한 후, 없앤 쌍의 개수와 nums에 남은 숫자의 개수를 차례대로 담은 배열 answer를 반환 // 연산 방법 - nums에서 같은 숫자 2개를 고른다. - 두 숫자 모두 num에서 없애고, 없앤 숫자는 쌍을 이룬다. 3. Constraint 1) 1
1. Input 1) String num 2. Output 1) [0, num.length)에 있는 모든 i에 대해서 i가 num[i]번 나타나면 true, 아니면 false를 반환 3. Constraint 1) 1 0이 1번 나타났나? -> O - 1번째 숫자: 2 -> 1이 2번 나타났나? -> O - 2번째 숫자: 1 -> 2가 1번 나타났나? -> O - 3번째 숫자: 0 -> 3이 0번 나타났나? -> O - 모든 경우가 맞으므로 true를 반환한다. 5. Code 1) 첫 코드(2022/08/04) int[] d = new int[num.length()]; for(int i=0 ; i=num.length()) return false; d[c]++; } for(int i=0 ; i
1. Input 1) 정수 배열 nums 2) 정수 original 2. Output 1) 다음 프로세스를 거치고 난 후의 original의 최종 값을 반환 // 프로세스 - nums에서 original을 찾는다. 찾았다면 original을 2배로 만든 후, 다시 처음부터 original을 찾는다. - nums에서 original을 찾지 못했다면 프로세스를 멈추고 original을 반환한다. 3. Constraint 1) 1 nums[5]==12이므로 original==24 - nums에 24는 없으므로 24를 반환한다. 5. Code 1) 첫 코드(2022/06/17) import java.util.*; Arrays.sort(nums); for(int i=0 ; i
1. Input 1) 문자열 rings - 링의 색깔과 링의 위치가 순서대로 담긴 길이 2의 문자열이 연속적으로 n개 담겨 있다. - 첫 번째 문자는 색깔을, 두 번째 문자는 위치를 나타낸다. 2. Output 1) 0부터 9까지 레이블링 되어있는 막대기들 중 세 가지 링이 모두 있는 막대기의 번호를 반환 3. Constraint 1) rings.length == 2 * n 2) 1
1. Input 1) 문자열 word1 2) 문자열 word2 2. Output 1) 두 문자열이 almost equivalent라면 true, 아니면 false // Almost Equivalent의 조건 - 두 문자열을 이루고 있는 각 문자들의 빈도 수의 차가 3 이하여야 한다. 3. Constraint 1) n == word1.length == word2.length 2) 1 4 - 0 > 3 이므로 false 5. Code 1) 첫 코드(2022/07/05) int[] n = new int[26]; for(int i=0 ; i