Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- java
- sorting
- 코딩테스트
- string
- Counting
- simulation
- Data Structure
- array
- dynamic programming
- SQL
- Math
- database
- Matrix
- hash table
- implement
- Class
- 파이썬
- two pointers
- Stack
- 자바
- 구현
- greedy
- geometry
- Binary Tree
- bit manipulation
- Binary Search
- Number Theory
- Method
- Tree
- 코테
Archives
- Today
- Total
코린이의 소소한 공부노트
[프로그래머스/Lv.1] k번째 수 본문
1. Input
1) 정수 배열 array
2) [i, j, k]를 원소로 가진 2차원 배열 commands
2. Output
1) array의 i번째 숫자부터 j번째까지 자르고 정렬했을 때 k번째 수를 담은 배열
3. Constraint
1) array의 길이는 1 이상 100 이하
2) array의 각 원소는 1 이상 100 이하
3) commands의 길이는 1 이상 50 이하
4) commands의 각 원소의 길이는 3
4. Example
Input: array={1,5,2,6,3,7,4}, commands={{2,5,3},{4,4,1},{1,7,3}} -> Output: {5,6,3}
설명:
- array의 2번째~5번째는 {5,2,6,3}이고, 정렬하면 {2,3,5,6}이므로 3번째 숫자는 5
- array의 4번째~4번째 숫자는 {6}이고, 정렬할 필요가 없으며, 첫번째 숫자는 6
- array의 1번째~7번째 숫자는 array 전체이고, 정렬하면 {1,2,3,4,5,6,7}이므로 3번째 숫자는 3
5. Code
1) 첫 코드(2022/??)
import java.util.Arrays;
int n=0, l=commands.length;
int[] index = new int[3]; // 문제의 i, j, k
int[] answer = new int[l];
int[] slice;
while(n<l){
// 커맨드 인덱스 받아오기
for(int a=0 ; a<3 ; a++)
index[a] = commands[n][a];
// 받은 인덱스로 배열 자르기
slice = Arrays.copyOfRange(array, index[0]-1, index[1]);
// 자른 배열 정렬하기
Arrays.sort(slice);
// k번째 수 저장하기
answer[n++] = slice[index[2]-1];
}
return answer;
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[프로그래머스/Lv.1] 소수 만들기 (0) | 2022.11.22 |
---|---|
[프로그래머스/Lv.1] [1차] 비밀지도 (0) | 2022.11.22 |
[프로그래머스/Lv.1] 모의고사 (0) | 2022.11.22 |
[프로그래머스/Lv.1] 키패드 누르기 (0) | 2022.11.21 |
[프로그래머스/Lv.1] 두 개 뽑아서 더하기 (0) | 2022.11.17 |