일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Binary Search
- Matrix
- database
- two pointers
- java
- greedy
- SQL
- Method
- implement
- 코딩테스트
- array
- Tree
- Class
- 자바
- Number Theory
- simulation
- string
- Math
- Stack
- 구현
- geometry
- sorting
- Data Structure
- 파이썬
- Counting
- 코테
- bit manipulation
- dynamic programming
- Binary Tree
- hash table
- Today
- Total
목록sorting (90)
코린이의 소소한 공부노트
화은이는 이번 영어 시험에서 틀린 문제를 바탕으로 영어 단어 암기를 하려고 한다. 그 과정에서 효율적으로 영어 단어를 외우기 위해 영어 단어장을 만들려 하고 있다. 화은이가 만들고자 하는 단어장의 단어 순서는 다음과 같은 우선순위를 차례로 적용하여 만들어진다. (1) 자주 나오는 단어일수록 앞에 배치한다. (2) 해당 단어의 길이가 길수록 앞에 배치한다. (3) 알파벳 사전 순으로 앞에 있는 단어일수록 앞에 배치한다 M보다 짧은 길이의 단어의 경우 읽는 것만으로도 외울 수 있기 때문에 길이가 M이상인 단어들만 외운다고 한다. 화은이가 괴로운 영단어 암기를 효율적으로 할 수 있도록 단어장을 만들어 주자. 1. 입력 - 첫째 줄에는 영어 지문에 나오는 단어의 개수 N과 외울 단어의 길이 기준이 되는 M이 공..
온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오. 1. 입력 - 첫째 줄에 온라인 저지 회원의 수 N이 주어진다. (1 ≤ N ≤ 100,000) - 둘째 줄부터 N개의 줄에는 각 회원의 나이와 이름이 공백으로 구분되어 주어진다. 나이는 1보다 크거나 같으며, 200보다 작거나 같은 정수이고, 이름은 알파벳 대소문자로 이루어져 있고, 길이가 100보다 작거나 같은 문자열이다. - 입력은 가입한 순서로 주어진다. 2. 출력 - 첫째 줄부터 총 N개의 줄에 걸쳐 온라인 저지 회원을 나이 순, 나이가 같으면 가입한 순으로 한 줄에 한 명씩 나이와 이름을 공백으로 구..
2차원 평면 위의 점 N개가 주어진다. 좌표를 y좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 1. 입력 - 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. - 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) - 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. 2. 출력 - 첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다. 3. 예제 4. 코드 import java.io.*; import java.util.*; class Main{ public static void main(String[] args) throws IOException{ Bu..
2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 1. 입력 - 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. - 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) - 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. 2. 출력 - 첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다. 3. 예제 4. 코드 import java.io.*; import java.util.*; class Main{ public static void main(String[] args) throws IOException{ Bu..
1. Input 1) int[] nums 2. Output 1) nums의 요소 중 최솟값도 아니고 최댓값도 아닌 수 중 하나를 반환 2) 그런 수가 없다면 -1을 반환 3. Constraint 1) 1
1. Input 1) int[] prices 2) int money 2. Output 1) money를 넘기지 않는 선에서 초콜릿 2개를 사려고 한다. 이때 초콜릿 2개의 가격의 합은 최소로 한다고 할 때, money를 내고 초콜릿을 사고 난 거스름돈을 반환 2) 만약 초콜릿의 가격이 money를 초과한다면 money를 반환 3. Constraint 1) 2
1. Input, Output, Example - 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬된 결과를 반환 2. Constraint 1) strings는 길이 1 이상, 50이하인 배열이다. 2) strings의 원소는 소문자 알파벳으로 이루어져 있다. 3) strings의 원소는 길이 1 이상, 100이하인 문자열이다. 4) 모든 strings의 원소의 길이는 n보다 크다. 5) 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치한다. 3. Code import java.util.*; class Solution { public String[] solution(String[] strings, int n) { Arrays.sort(strings, new C..
정수 n을 기준으로 n과 가까운 수부터 정렬하려고 한다. 이때 n으로부터의 거리가 같다면 더 큰 수를 앞에 오도록 배치한다. 1. Input, Output, Example - numlist의 원소를 n으로부터 가까운 순서대로 정렬한 배열을 반환 2. Constraint 1) 1 ≤ n ≤ 10,000 2) 1 ≤ numlist의 원소 ≤ 10,000 3) 1 ≤ numlist의 길이 ≤ 100 4) numlist는 중복된 원소를 갖지 않는다. 3. Code class Solution { static int standard; public int[] solution(int[] numlist, int n) { standard = n; quicksort(numlist, 0, numlist.length-1); r..
하나의 양팔 저울을 이용하여 물건의 무게를 측정하려고 한다. 이 저울의 양 팔의 끝에는 물건이나 추를 올려놓는 접시가 달려 있고, 양팔의 길이는 같다. 또한, 저울의 한쪽에는 저울추들만 놓을 수 있고, 다른 쪽에는 무게를 측정하려는 물건만 올려놓을 수 있다. 무게가 양의 정수인 N개의 저울추가 주어질 때, 이 추들을 사용하여 측정할 수 없는 양의 정수 무게 중 최솟값을 구하는 프로그램을 작성하시오. 1. 입력 - 첫 째 줄에는 저울추의 개수를 나타내는 양의 정수 N이 주어진다. N은 1 이상 1,000 이하이다. - 둘째 줄에는 저울추의 무게를 나타내는 N개의 양의 정수가 빈칸을 사이에 두고 주어진다. 각 추의 무게는 1이상 1,000,000 이하이다. 2. 출력 - 첫째 줄에 주어진 추들로 측정할 수 ..
언제나 최고만을 지향하는 굴지의 대기업 진영 주식회사가 신규 사원 채용을 실시한다. 인재 선발 시험은 1차 서류심사와 2차 면접시험으로 이루어진다. 최고만을 지향한다는 기업의 이념에 따라 그들은 최고의 인재들만을 사원으로 선발하고 싶어 한다. 그래서 진영 주식회사는, 다른 모든 지원자와 비교했을 때 서류심사 성적과 면접시험 성적 중 적어도 하나가 다른 지원자보다 떨어지지 않는 자만 선발한다는 원칙을 세웠다. 즉, 어떤 지원자 A의 성적이 다른 어떤 지원자 B의 성적에 비해 서류 심사 결과와 면접 성적이 모두 떨어진다면 A는 결코 선발되지 않는다. 이러한 조건을 만족시키면서, 진영 주식회사가 이번 신규 사원 채용에서 선발할 수 있는 신입사원의 최대 인원수를 구하는 프로그램을 작성하시오. 1. 입력 - 첫째..