728x90
[Java] 프로그래머스 : K번째 수
https://school.programmers.co.kr/learn/courses/30/lessons/42748
접근
처음에 commands의 각 요소들이 두자리 수 이상의 정수가 온다는 것을 인지하지 못하고 String으로 변환하여 substring으로 잘라내다가 2, 6번 케이스에서 오류가 났었다.
array가 [1, 5, 2, 6, 3, 7, 4]와 같은 경우, String으로 변환하면 1526374가 되고 필요한 부분을 잘라 각각을 정수로 다시 변환하여 k번째 값을 추출할 생각이었다.
그러나 만약 array가 [1, 100, 22, 55]와 같은 경우 String으로 변환하면 11002255가 되기 때문에 i부터 j까지를 substring하면 엉뚱한 결과가 나오게 된다.
따라서 String으로 변환하지 않고 array 자체를 슬라이싱 하는 방법이 필요했다.
코드
import java.util.*;
class Solution {
public int[] solution(int[] array, int[][] commands) {
int[] answer = new int[commands.length];
for(int i = 0; i < commands.length; i++) {
int[] temp = Arrays.copyOfRange(array, commands[i][0]-1, commands[i][1]);
Arrays.sort(temp);
answer[i] = temp[commands[i][2]-1];
}
return answer;
}
}
728x90
'알고리즘 문제 풀이' 카테고리의 다른 글
[Java] 프로그래머스 : 숫자 짝꿍 (0) | 2023.08.01 |
---|---|
[Java] 프로그래머스 : 로또의 최고 순위와 최저 순위 (0) | 2023.08.01 |
[Java] 백준 2206 : 벽 부수고 이동하기 (0) | 2023.07.20 |
[Java] 백준 14226 : 이모티콘 (0) | 2023.07.20 |
[Java] 백준 1987 : 알파벳 (0) | 2023.07.13 |