-
코딩테스트 연습 - K번째수
[1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3]
programmers.co.kr
문제
해당 문제는 배열이 주어졌을 때 x번째에서 y번째 만큼 가져와서 정렬한 뒤 z번째 큰 수를 출력하는 문제다.
조건
- array의 길이는 1 이상 100 이하입니다.
- array의 각 원소는 1 이상 100 이하입니다.
- commands의 길이는 1 이상 50 이하입니다.
- commands의 각 원소는 길이가 3입니다.
풀이
해당 문제는 Arrays를 이용해서 쉽게 해결했다. Arrays에 copyOfRange를 이용하면 배열을 카피할 수 있고 시작과 끝 인덱스를 지정해주면 해당 범위의 배열 값을 가져올 수 있다.
이후 배열을 카피한 다음 정렬을 해주고 z번째 값을 가져와 저장해주면 된다.
코드
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[] copy = Arrays.copyOfRange(array, commands[i][0]-1, commands[i][1]); // 특정위치의 배열 값을 카피 Arrays.sort(copy); // 배열 정렬 answer[i] = copy[commands[i][2] -1]; // 몇 번째 값을 저장함. } return answer; } }
GitHub - JUNGSOONIL/JAVA: JAVA 소스 코드
JAVA 소스 코드. Contribute to JUNGSOONIL/JAVA development by creating an account on GitHub.
github.com
728x90'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 모의고사 JAVA (0) 2022.03.09 프로그래머스 가장 큰 수 JAVA (0) 2022.03.08 프로그래머스 기능개발 JAVA (0) 2022.03.02 프로그래머스 로또의 최고 순위와 최저 순위 JAVA (0) 2022.02.13 프로그래머스 해시 완주하지 못한 선수 JAVA (0) 2021.10.31 댓글