1. 문제
2. 문제 해결 논리
1. 문제 이해
- 주어진 것
- int[] array //조작할 배열
- int[][] commands //조작 정보가 담겨있는 이차원 배열
- 요구되는 것
- int[] answer //조작이 완료된 배열
2. 데이터 구조 결정
- 반복문, Arrays 클래스의 범위 복사, 정렬 메서드 사용
3. 알고리즘 설계
- 이차원 배열의 행의 수만큼의 사이즈를 갖는 answer 배열 생성
- 이차원 배열을 행 단위로 순회하는 반복문안에서 조작 및 answer 배열에 저장
3. 코드 구현
import java.util.Arrays;
class Solution {
public int[] solution(int[] array, int[][] commands) {
//commands 배열의 원소 수 == 행의 수
//행의 수만큼 조작이 이뤄지고, 그 결과값은 한 개의 정수
//따라서 이차원 배열의 행의 수만큼 사이즈를 갖는 배열 answer 생성
int[] answer = new int[commands.length];
//이차원 배열을 순회하면서 조작
for (int i = 0; i < commands.length; i++) {
//이차원 배열 i행의 0열의 원소-1 == 복사할 array의 시작 인덱스
//이차원 배열 i행의 1열의 원소 == 복사할 array의 끝 인덱스(포함 안됨)
//Arrays 클래스의 특정 배열의 범위 복사 메서드
int[] temp = Arrays.copyOfRange(array, commands[i][0] - 1, commands[i][1]);
//Arrays 클래스의 정렬 메서드(디폴트 == 오름차순)
Arrays.sort(temp);
//배열 answer에 복사된 배열 중 특정 인덱스의 원소 저장
answer[i] = temp[commands[i][2] - 1];
}
return answer;
}
}
* Reference
https://school.programmers.co.kr/learn/courses/30/lessons/42748
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
반응형
'PS > Programmers' 카테고리의 다른 글
[level1, HashMap] 달리기 경주 (0) | 2023.05.10 |
---|---|
[level1, HashSet/TreeSet] 두 개 뽑아서 더하기 (0) | 2023.03.30 |
[level1, 비트 연산] [1차] 비밀지도 (0) | 2023.03.27 |
[level1, Arrays] 삼총사 (0) | 2023.03.26 |
[level1, Arrays] 예산 (0) | 2023.03.25 |