일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코테
- Matrix
- greedy
- Tree
- simulation
- 구현
- array
- bit manipulation
- 파이썬
- geometry
- string
- 자바
- Data Structure
- Counting
- dynamic programming
- java
- Class
- Binary Search
- hash table
- Binary Tree
- implement
- SQL
- Method
- Stack
- Math
- two pointers
- 코딩테스트
- database
- sorting
- Number Theory
- Today
- Total
목록sorting (90)
코린이의 소소한 공부노트
1. Input 1) int[] arr1 2) int[] arr2 2. Output 1) arr2의 요소가 들어있는 순서에 맞춰 arr1의 요소를 정렬한 결과를 반환 - arr2에 없는 요소는 arr1의 뒤쪽에 붙인다. 이때 정렬 순서는 오름차순이다. 3. Constraint 1) 1
1. Input 1) int rows 2) int cols 3) int rCenter 4) int cCenter 2. Output 1) rows*cols 행렬의 (rCenter, cCenter)에서부터 가까운 순서로 좌표를 담은 배열을 반환 - (rCenter, cCenter)에서부터 같은 거리에 있는 여러 개의 점을 담을 때는 어떤 순서든 상관없다.. - 두 점 (r1, c1), (r2, c2) 사이의 거리를 구할 때는 |r1 - r2| + |c1 - c2|를 계산하여 구한다. 3. Constraint 1) 1

1. 입력 - 첫째 줄에 기타의 개수 N이 주어진다. N은 50보다 작거나 같다. - 둘째 줄부터 N개의 줄에 시리얼 번호가 하나씩 주어진다. 시리얼 번호의 길이는 최대 50이고, 알파벳 대문자 또는 숫자로만 이루어져 있다. 시리얼 번호는 중복되지 않는다. 2. 출력 - 첫째 줄부터 차례대로 N개의 줄에 한줄에 하나씩 다음 조건에 따라 시리얼 번호를 정렬한 결과를 출력한다. // 시리얼번호 A가 시리얼번호 B의 앞에 오는 경우는 다음과 같다. - A와 B의 길이가 다르면, 짧은 것이 먼저 온다. - 만약 서로 길이가 같다면, A의 모든 자리수의 합과 B의 모든 자리수의 합을 비교해서 작은 합을 가지는 것이 먼저온다. (숫자인 것만 더한다) - 만약 1,2번 둘 조건으로도 비교할 수 없으면, 사전순으로 비..

1. 입력 - 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) - 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. 2. 출력 - 다음 조건에 따라 정렬하여 단어들을 출력한다. // 길이가 짧은 것부터 출력한다. // 길이가 같으면 사전 순으로 출력한다. // 중복된 단어는 하나만 남기고 제거해야 한다. 3. 예제 4. 코드 1) 첫 코드 import java.util.*; import java.io.*; class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedRead..
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) 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. Input 1) String s 2) String t 2. Output 1) s가 t가 되기 위해서 추가해야 하는 문자를 반환 3. Constraint 1) 0