Leetcode Java Max Chunks To Make Sorted
업데이트:
문제
코드
class Solution {
public int maxChunksToSorted(int[] arr) {
int max = 0;
int result = 0;
for (int idx = 0; idx < arr.length; idx++) {
max = Math.max(max, arr[idx]);
if (max == idx) {
result++;
}
}
return result;
}
}
결과
설명
-
지난 번 Max Chunks To Make Sorted II와 비슷한 문제로 [0, n - 1] 범위의 길이 n의 정수 배열인 arr을 부분 배열로 나눌 때, 부분 배열을 각각 정렬해서 이어준 결과와 기존 배열을 정렬한 결과가 동일하기 위한 최대 부분 배열의 수를 구하는 문제이다.
- 문제 풀이에 필요한 변수를 정의한다.
- max는 최댓 값을 저장할 변수로, 0으로 초기화한다.
- result는 최대 부분 배열의 수를 저장할 변수로, 0으로 초기화한다.
- 0부터 arr의 길이 전까지 idx를 증가시키며 아래를 반복한다.
- max에 현재 위치까지 가장 큰 값을 임시 저장시킨다.
- max와 idx가 동일하면 정렬된 위치와 같아 하나의 부분 배열로 분리 가능하므로, result를 증가시킨다.
- 반복이 완료되면 최대 부분 배열의 수가 저장된 result를 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기