import java.util.*;
class Main {
public ArrayList<Integer> solution(int n,int[] arr) {
ArrayList<Integer> answer = new ArrayList<>();
int[] arr2 = arr.clone();//깊은복사를 하지않으면 값이 같이 바뀐다.
Arrays.sort(arr2);
for(int i=0; i<n;i++) {
if(arr2[i] != arr[i]) answer.add(i+1);
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
int[] arr = new int[n];
for(int i=0; i<n; i++) arr[i] = kb.nextInt();
for(int x : T.solution(n, arr)) System.out.print(x + " ");
}
}
arr2에는 정렬된 배열을 담아서, arr과 arr2를 비교해서 값이 다른곳의 index 값을 answer에 +1시켜 담아주면 된다!
arr이 변해도 값이 변하지 않는 배열을 복사하려면 clone을 이용하면된다!
정렬을 이용하면 어려운 문제도 쉽게 풀리는경우가 있으니 문제를 풀때 잘 고려하자!