[인프런 알고리즘] Chapter 6, 6번 문제(장난꾸러기)자료구조 & 알고리즘/Inflearn2024. 8. 20. 12:55
Table of Contents
이 알고리즘 문제는 인프런의 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비 (김태원)의 문제입니다.
문제 설명
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.StringTokenizer;
public class sec06_06 {
public static ArrayList<Integer> solution(int[] arr)
{
int[] copy = arr.clone();
ArrayList<Integer> answer = new ArrayList<>();
Arrays.sort(copy);
for (int i = 0; i < arr.length; ++i) if(arr[i] != copy[i]) answer.add(i + 1);
return answer;
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int[] arr = new int[N];
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; ++i) arr[i] = Integer.parseInt(st.nextToken());
for (int i : solution(arr)) System.out.print(i + " ");
}
}
설명
- 얕은 복사 후 정렬을 수행하면 원본 배열은 정렬되지 않고 복사된 배열만 정렬된다.
- 원본 배열과 복사된 배열을 준비하고, 복사된 배열을 정렬한다.
- 각각의 인덱스를 돌면서 값이 다른 부분을 출력한다.
'자료구조 & 알고리즘 > Inflearn' 카테고리의 다른 글
[인프런 알고리즘] Chapter 6, 8번 문제(이분검색) (0) | 2024.08.22 |
---|---|
[인프런 알고리즘] Chapter 6, 7번 문제(좌표 정렬) (0) | 2024.08.21 |
[인프런 알고리즘] Chapter 6, 5번 문제(중복 확인) (0) | 2024.08.18 |
[인프런 알고리즘] Chapter 06, 4번 문제(Least Recently Used) (0) | 2024.08.17 |
[인프런 알고리즘] Chapter 6, 3번 문제(삽입 정렬) (0) | 2024.08.16 |