숫자 배열을 순서대로 넣는 문제
[1 2 0 2 1 0 0 1 2] -> [0 0 0 1 1 1 2 2 2]
void sortColors(int [] nums) {
int idx0 = 0; //0이 저장될 인덱스
int idx2 = num.length - 1;//2가 저장될 인덱스
int i = 0; //현재 인덱스
while (i <= idx2) { //2를 가리키는 인덱스와 현재 인덱스가 서로 지나치면 종료
if (nums[i] == 0) { //현재 인덱스의 값이 0이라면
swap(nums[i], nums[idx0]);
// 0이 저장될 인덱스와 현재 인덱스의 숫자를 서로 바꾸고
idx0++; //0이 저장될 인덱스와
i++; //현재 인덱스를 오른쪽으로 한칸씩 옮긴다
} else if (nums[i] == 2) { //현재 인덱스의 값이 2라면
swap(nums[i], nums[idx2]);
idx2--;
// idx2에 있던 값이 0,1,2 모두 될 수 있으므로
//i에 옮겨진 값을 한번 더 체크해야해서 i++ 안함
} else { //현재 인덱스의 값이 1이라면
i++;
}
}
}