일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- SQL
- Counting
- greedy
- Class
- 파이썬
- bit manipulation
- Binary Tree
- string
- Math
- Matrix
- 코테
- hash table
- Number Theory
- implement
- java
- database
- 코딩테스트
- two pointers
- Method
- Data Structure
- Stack
- 구현
- 자바
- dynamic programming
- array
- Tree
- geometry
- simulation
- sorting
- Binary Search
- Today
- Total
목록자바 (584)
코린이의 소소한 공부노트
1. Input 1) int n 2. Output 1) 아무 것도 없는 상황에서 1분 뒤 정사각형이 1개 생기고, 매 1분이 지날때마다 사각형의 변에 또 다른 정사각형이 생겨날 때, n분 후의 정사각형의 수를 long으로 반환 3. Constraint 1) 1 5개 n=3 -> 13개 (위의 그림과 같다.) 5. Code 1) 첫 코드(2023/03/06) return 2*(long)Math.pow(n,2) - 2*n + 1;
1. Input 1) int num 2. Output 1) num의 숫자들을 재배치해서 0이 아닌 정수 2개를 만들었을 때, 만들 수 있는 두 수의 합 중 가장 작은 것을 반환 3. Constraint 1) 10
1. Input 1) int[] candyType - candyType[i]는 i번째 사탕의 타입을 나타낸다. 2. Output 1) n개의 사탕 중 절반만 먹을 수 있다고 할 때, 먹을 수 있는 사탕의 종류 수 중 가장 큰 것을 반환 3. Constraint 1) n == candyType.length 2) 2
1. Input 1) int[] gifts 2) int k 2. Output 1) 아래와 같은 단계를 거치고 남은 선물의 수의 합을 반환 - 선물의 수가 가장 큰 더미를 고른다. - 가장 큰 더미가 여러 개라면 아무거나 하나를 고른다. - 더미의 수의 제곱근만큼만 남겨놓고 나머지는 가져간다. - 위 행동을 k번 반복한 후 남은 선물의 수를 더한다. 3. Constraint 1) 1 루트25 = 5 -> gifts = [5,8,9,4,10] - 10이 가장 큼 -> 루트10 = 3.xx -> gifts = [5,8,9,4,3] - 5+8+9+4+3=29를 반환한다. 5. Code 1) 첫 코드(2023/03/02) for(int i=0 ; i
1. Input 1) int[] nums 2. Output 1) 아래 순서에 따라 계산한 결과를 long으로 반환 - nums의 첫 요소를 앞에, 마지막 요소를 뒤에 붙여 1개의 수를 만든다. - 사용한 요소는 삭제하고, nums의 요소가 모두 사용될 때까지 위와 같은 방법으로 수를 만든다. - 만든 모든 수를 더한다. 3. Constraint 1) 1
1. Input 1) int[] nums 2) int k 2. Output 1) 다음 조건을 만족하는 쌍의 개수 - nums[i]와 nums[j]의 차가 k - i != j - 중복되는 쌍은 세지 앉는다. 예를 들어 (1, 2)와 (2, 1)은 같은 것으로 취급한다. 3. Constraint 1) 1
1. Input 1) int num 2. Output 1) num의 있는 숫자를 remapping해서 다른 수로 만들었을 때의 최댓값과 최솟값의 차를 반환 3. Constraint 1) 1 99899 - 최솟값을 얻으려면 1을 0으로 바꿔야 한다. -> 890 - 따라서 99899 - 890 = 99009를 반환한다. 5. Code 1) 첫 코드(2023/03/01) String n = String.valueOf(num); int index = 0; for(int i=0 ; i
1. Input 1) int[] nums 2. Output 1) nums가 순환 배열이라고 할 때, i번째 이후의 요소들 중 nums[i]보다 큰 첫 번째 수를 차례대로 담은 배열을 반환 2) 그런 수를 찾지 못했다면 -1을 저장 3. Constraint 1) 1
1. Input 1) int[] nums 2. Output 1) nums[i]를 기준으로 왼쪽 요소의 합과 오른쪽 요소의 합을 구한 후, 그 차이를 차례대로 담은 int[] 3. Constraint 1) 1 왼쪽합=10, 오른쪽합=11 -> 1 - nums[2] = 8 -> 왼쪽합=14, 오른쪽합=3 -> 11 - nums[3] = 3 -> 왼쪽합=22, 오른쪽합=0 -> 22 5. Code 1) 첫 코드(2023/02/27) int[] answer = new int[nums.length]; int totalsum = 0; for(int i=0 ; i
1. Input 1) int[] nums1 2) int[] nums2 2. Output 1) nums1[i]의 요소를 nums2에서 찾은 다음, 해당 요소의 오른쪽에 있는 nums2의 요소 중 nums1[i]보다 큰 첫 번째 요소를 차례대로 담은 int[] - 만약 nums2에서 nums1[i]보다 큰 요소를 찾지 못했다면 -1을 저장한다. 3. Constraint 4. Example Input: nums1 = [4,1,2], nums2 = [1,3,4,2] -> Output: [-1,3,-1] 설명: - nums1[0]==4 -> nums2[2]==4 -> nums2에서 index>2 인 요소 중 4보다 큰 요소가 없으므로 -1을 저장 - nums1[1]==1 -> nums2[0]==1 -> nums2..