일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- dynamic programming
- 코테
- simulation
- 코딩테스트
- Tree
- bit manipulation
- array
- Math
- Matrix
- Method
- string
- java
- 파이썬
- 자바
- SQL
- Counting
- database
- Data Structure
- geometry
- hash table
- sorting
- 구현
- two pointers
- implement
- Binary Tree
- Class
- greedy
- Stack
- Number Theory
- Binary Search
- Today
- Total
목록분류 전체보기 (1234)
코린이의 소소한 공부노트
1. Problem - 배열의 요소를 오름차순으로 정렬해보자. - 정렬할 데이터의 범위를 알고 있다면 데이터의 개수를 세어서 정렬할 수 있다. 2. Input 1) int[] arr 3. Output 1) arr를 오름차순으로 정렬한 결과 4. Example // 예시: 5 5 4 4 3 3 3 2 2 1 // 배열의 앞에서부터 읽어가며 카운팅을 한다. // 5 -> count[5]++; // 5 -> count[5]++; // 4 -> count[4]++; // ... // 1 -> count[1]++; // count = [0, 1, 2, 3, 2, 2] // 이것을 바탕으로 정렬된 결과를 출력하면 // 1 2 2 3 3 3 4 4 5 5 5. Code int[] arr = {1,2,3,4,5,5,4..

1. Problem - 힙을 이용해 배열의 값을 오름차순으로 정렬해보자. // 완전 이진 트리(complete binary tree): 자식 노드가 왼쪽부터 채워지는 이진 트리. 같은 레벨의 중간 부분이 비어있지 않다. // 힙: 최댓값/최솟값을 빠르게 찾기 위해 완전 이진 트리를 기반으로 만들어진 트리 // 최대 힙: 부모 노드가 자식 노드보다 큰 값을 갖는 힙 // 힙 생성(heapify) 알고리즘: 특정 노드를 최대 힙에 넣는 알고리즘. 특정 노드의 두 자식 중 더 큰 자식과 자기 자신의 위치를 바꾸면서 자리를 찾아 간다. 2. Input 1) int[] heap 3. Output 1) heap을 오름차순으로 정렬한 결과 4. Example // 위쪽 그림에서의 최대 힙: 6 5 2 4 1 // 6..
1. Input 1) TreeNode root 2. Output 1) root에 있는 두 노드의 값의 차가 가장 작은 것을 반환 - 차는 절댓값으로 계산한다. 3. Constraint 1) 노드의 수는 [2, 10^4]이다. 2) 0

1. Input 1) Table: Activity (pk: (player_id, event_date)) 2. Output 1) 각 플레이어별로 게임에 처음 로그인 한 날짜를 출력 - 출력 순서는 상관 없다. 3. Example 4. Code 1) 첫 코드(2023/05/23) select player_id, min(event_date) as first_login from Activity group by player_id;
1. Input 1) int[] score 2. Output 1) 각 점수에 대해서 등수를 매긴 string[]을 반환 - 1등은 “Gold Medal" - 2등은 "Silver Medal" - 3등은 “Bronze Medal" - x등은 “x" 3. Constraint 1) n == score.length 2) 1

1. 입력 - 숫자 세 개가 주어진다. 이 숫자는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 이 숫자는 모두 다르다. 2. 출력 - 제일 작은 수, 그 다음 수, 제일 큰 수를 차례대로 출력한다. 3. 예제 4. 코드 import java.util.*; class Main{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); int[] num = new int[3]; for(int i=0 ; inum[j+1]){ int tmp = num[j]; num[j] = num[j+1]; num[j+1] = tmp; j--; } } for(int i=0 ; i
1. Problem - n개의 정수가 담긴 배열을 오름차순으로 정렬해보자. - 삽입 정렬은 요소를 적절한 위치에 삽입하는 방법으로 정렬한다. - i번째의 요소를 정렬할 차례가 됐을 때, [0, i-1]까지는 정렬된 상태라고 가정한다. - 필요할 때만 요소의 위치를 바꾼다. 2. Input 1) int[] arr 3. Output 1) 오름차순으로 정렬된 배열을 반환 4. Example // 예시: 2 3 6 1 5 4 // 0번째: 삽일할 위치가 없다. -> (2) 3 6 1 5 4 // 1번째: 3은 2보다 크다. -> (2 3) 6 1 5 4 // 2번째: 6은 3보다 크다. -> (2 3 6) 1 5 4 // 3번째: 1은 2보다 작다. -> (1 2 3 6) 5 4 // 4번째: 5는 3보다 크고..
1. Problem - n개의 정수를 담은 배열을 오름차순으로 정렬해보자. - 버블 정렬은 바로 옆에 있는 두 요소 중 더 작은 요소를 앞으로 보내면서 정렬한다. - 맨 끝까지의 비교가 1번씩 일어날 때마다 가장 큰 요소가 맨 뒤로 간다. 2. Input 1) int[] arr 3. Output 1) 정렬된 배열을 반환 4. Example // 예시: {2 3 6 1 5 4} // 2는 바꾸지 않는다. -> {2 3 6 1 5 4} // 3은 바꾸지 않는다. -> {2 3 6 1 5 4} // 1과 6을 바꾼다. -> {2 3 (1 6) 5 4} // 6과 5를 바꾼다. -> {2 3 1 (5 6) 4} // 6과 4를 바꾼다. -> {2 3 1 5 (4 6)} -> {2 3 1 5 4} 6 // 다시 ..
1. Problem - n개의 정수가 담긴 배열을 오름차순으로 정렬해보자. - 선택 정렬은 가장 작은 요소를 찾아 자리를 바꾸면서 정렬한다. - 맨 끝까지의 비교가 1번씩 일어날 때마다 가장 작은 요소가 앞으로 간다. 2. Input 1) int[] arr 3. Output 1) 오름차순으로 정렬된 배열 4. Example // 예시: (2 3 6 1 5 4) // 가장 작은 수: 1 -> 1과 2를 바꾼다. -> 1 (3 6 2 5 4) // 가장 작은 수: 2 -> 2와 3을 바꾼다. -> 1 2 (3 6 5 4) // 가장 작은 수: 3 -> 바꾸지 않는다. -> 1 2 3 (6 5 4) // 가장 작은 수: 4 -> 4와 6을 바꾼다. -> 1 2 3 4 (5 6) // 가장 작은 수: 5 -> ..