예시 입력
5 9
1 2 3 2 6 2 3 5 7
import java.util.*;
public class Main {
public int[] solution(int size, int n, int[] arr){
int[] cache=new int[size];
for(int x : arr){
int pos=-1; // 인덱스
for(int i=0; i<size; i++){
if(x==cache[i]) pos=i; // hit라면 hit된 지점에 인덱스 저장
}
if(pos== -1){ // hit가 아니라면
for(int i=size-1; i>=1; i--){
cache[i]=cache[i-1];
}
}
else{ // hit라면
for(int i=pos; i>=1; i--){ // hit가 난 지점부터 한칸씩 밀리게
cache[i]=cache[i-1];
}
}
cache[0]=x;
}
return cache;
}
public static void main(String[] args) {
Main T = new Main();
Scanner sc = new Scanner(System.in);
int s=sc.nextInt();
int n=sc.nextInt();
int[] arr=new int[n];
for(int i=0; i<n; i++) arr[i]=sc.nextInt();
for(int x:T.solution(s,n,arr)) System.out.print(x+" ");
}
}
'ALGORITHM' 카테고리의 다른 글
[JAVA] 백준 1152번- 단어의 개수 (0) | 2022.07.26 |
---|---|
[JAVA] 알고리즘 : 정렬- 중복 확인 (0) | 2022.07.26 |
[JAVA] 알고리즘 : 정렬- 삽입정렬 (0) | 2022.07.25 |
[JAVA] 알고리즘 : 정렬- 버블정렬 (0) | 2022.07.25 |
[JAVA] 알고리즘 : 정렬- 선택정렬 (0) | 2022.07.25 |