[ํ๋ก๊ทธ๋๋จธ์ค] K๋ฒ์งธ ์
https://programmers.co.kr/learn/courses/30/lessons/42748
๋ฌธ์ ์ค๋ช
๋ฐฐ์ด array์ i๋ฒ์งธ ์ซ์๋ถํฐ j๋ฒ์งธ ์ซ์๊น์ง ์๋ฅด๊ณ ์ ๋ ฌํ์ ๋, k๋ฒ์งธ์ ์๋ ์๋ฅผ ๊ตฌํ๋ ค ํฉ๋๋ค.
์๋ฅผ ๋ค์ด array๊ฐ [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3์ด๋ผ๋ฉด
- array์ 2๋ฒ์งธ๋ถํฐ 5๋ฒ์งธ๊น์ง ์๋ฅด๋ฉด [5, 2, 6, 3]์ ๋๋ค.
- 1์์ ๋์จ ๋ฐฐ์ด์ ์ ๋ ฌํ๋ฉด [2, 3, 5, 6]์ ๋๋ค.
- 2์์ ๋์จ ๋ฐฐ์ด์ 3๋ฒ์งธ ์ซ์๋ 5์ ๋๋ค.
๋ฐฐ์ด array, [i, j, k]๋ฅผ ์์๋ก ๊ฐ์ง 2์ฐจ์ ๋ฐฐ์ด commands๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, commands์ ๋ชจ๋ ์์์ ๋ํด ์์ ์ค๋ช ํ ์ฐ์ฐ์ ์ ์ฉํ์ ๋ ๋์จ ๊ฒฐ๊ณผ๋ฅผ ๋ฐฐ์ด์ ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- array์ ๊ธธ์ด๋ 1 ์ด์ 100 ์ดํ์ ๋๋ค.
- array์ ๊ฐ ์์๋ 1 ์ด์ 100 ์ดํ์ ๋๋ค.
- commands์ ๊ธธ์ด๋ 1 ์ด์ 50 ์ดํ์ ๋๋ค.
- commands์ ๊ฐ ์์๋ ๊ธธ์ด๊ฐ 3์ ๋๋ค.
Code
import java.util.Arrays;
class Solution {
public int[] solution(int[] array, int[][] commands) {
int[] answer = new int[commands.length];
for(int i=0;i<commands.length;i++){
int a,b,c;
a=commands[i][0];
b=commands[i][1];
c=commands[i][2];
int[] temp = Arrays.copyOfRange(array,a-1,b);
Arrays.sort(temp);
answer[i]=temp[c-1];
}
return answer;
}
}
Code ์ค๋ช
answer์ ํฌ๊ธฐ๋ commands์ ํฌ๊ธฐ์ ๋์ผํ๊ณ commands์ ํฌ๊ธฐ๋งํผ ๋ฐ๋ณต๋ฌธ์ ๋์์ผ ํ๋ค.
๋ฌธ์ ์ค๋ช
์์ i๋ a, j๋ b, k๋ c๋ก ๋ฐ์์ input์ธ array์ a๋ฒ์งธ๋ถํฐ b๋ฒ์งธ๊น์ง ๋ณต์ฌํ์ฌ temp๋ก ์ฎ๊ธฐ๊ณ temp๋ฅผ ์ ๋ ฌํด์ c๋ฒ์งธ๋ฅผ answer[i]์ ๋ฃ์ด์ฃผ์๋ค.
๋ฐฐ์ด์
Java๋ฅผ 2๋
์ ์ ์ ๊น ํ๊ณผ์์ ๋ฐฐ์ฐ๊ณ ์ฌ์ฉ์ ์ํ๋ค๊ฐ ์ด๋ฒ์ ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ๋ ํ ๊ฒธ ์๋ฐ๊ณต๋ถ๋ฅผ ์์ํด์ ์์ง ์๋ฐ ์ฌ์ฉ์ด ๋ฏ์ค๋ค.
๊ธฐ์กด์ ์ฐ๋ C/C++๊ณผ ๋ฌ๋ฆฌ Java๋ ๊ทธ๋ฅ ๋ฐฐ์ด์์๋ ์ฌ์ฉํ ์ ์๋ ํธํ ๋ฉ์๋๋ค์ด ๋ง๋ค๋ ๊ฒ์ ๋๋ผ๊ฒ ๋์๋ค.
- ๋ฐฐ์ด์ ์ธ
์๋ฐ๋ ๋ฐฐ์ด์ ์ ์ธํ ๋ int[] answer = new int[commands.length] ์ ๊ฐ์ด ํ ๋น์ ํด์ฃผ์ด์ผ ํ๋ค. - java.util.Arrays
์๋ฐ์ util ํจํค์ง๋ ์ ๋ง ์์ฃผ ์ฐ์ด๊ณ ์ ์ฉํ ๊ฒ๋ค์ด ๋ง๋ค๊ณ ํ๋ค. ๋ณดํตimport java.util.*
๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ค. ํ์ง๋ง ์์ง ๋ญ๊ฐ ์๋์ง ๋ชจ๋ฅด๋ฏ๋ก ํ์ํ๊ฒ ๋์ฌ๋๋ง๋ค ํ๋์ฉ importํด์ค์ ์ฌ์ฉํด ๋ณด๋ ค๊ณ ํ๋ค.
Arraysํด๋์ค๋ ์ด๋ฆ์์ ์ ์ ์๋ฏ์ด ๋ฐฐ์ด์ ๋ค๋ฃจ๋ ๋ฉ์๋๋ค์ด ํฌํจ๋์ด ์๋ค.
์ด๋ฒ์ ์ฌ์ฉํ ๋ฉ์๋๋ copyOfRange(), sort() ์ด๋ค.
copyOfRange(arr,startidx,endidx)
์ด ๋ฉ์๋๋ ์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ก ๋ณต์ฌํ ์๋ณธ ๋ฐฐ์ด์ ๋ฐ๊ณ , ๋ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ก ์์ ์ธ๋ฑ์ค, ์ธ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ก ๋ง์ง๋ง ๋ณต์ฌ๋ ๋ฐฐ์ด ์ธ๋ฑ์ค+1์ ๋ฐ์์ ์๋ณธ ๋ฐฐ์ด๊ณผ ๊ฐ์ ํ์
์ ๋ณต์ฌ๋ ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํํด์ค๋ค.
sort(arr)
์ด ๋ฉ์๋๋ ๋งค๊ฐ๋ณ์๋ก ๋ฐฐ์ด์ ๋ฐ๊ณ ๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํด์ค๋ค.
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algoritm/Java][ํ๋ก๊ทธ๋๋จธ์ค] ์ฒด์ก๋ณต (0) | 2021.07.13 |
---|---|
[Algoritm/Java][ํ๋ก๊ทธ๋๋จธ์ค] ํฐ์ผ๋ชฌ (0) | 2021.07.12 |
[Algorithm/JAVA][ํ๋ก๊ทธ๋๋จธ์ค] ์์ฃผํ์ง ๋ชปํ ์ ์ (0) | 2021.07.11 |
[Algorithm/Java][ํ๋ก๊ทธ๋๋จธ์ค] ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ ๊ฒ์ (0) | 2021.07.10 |
[Algorithm/Java][ํ๋ก๊ทธ๋๋จธ์ค] ๋ชจ์๊ณ ์ฌ (0) | 2021.07.08 |