문제 내용은 입력으로 전체 대기 명단과, 민규 친구들 대기 명단을 받은 뒤, 민규 친구들을 모두 대기 명단 앞 순위로 바꿔주려면 최소 몇 번을 움직여야 하는가를 반환해야 하는데
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] arr = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
Integer[] entire = Arrays.stream(br.readLine().split(" ")).map(Integer::parseInt)
.toArray(Integer[]::new);
Integer[] friens = Arrays.stream(br.readLine().split(" ")).map(Integer::parseInt)
.toArray(Integer[]::new);
List<Integer> friensList = Arrays.asList(friens);
int ans = 0;
for (int i = 0; i < arr[1]; i++) {
if (friensList.contains(entire[i])) {
} else {
ans++;
}
}
System.out.println(ans);
}
}
어렵게 생각하면 문제도 어려워지기 때문에, 단순하게 압축해보면 결국 친구들을 모두 앞순위에 넣어주면 되는 것이므로 전체 배열 중 친구 배열 크기만큼 for 문을 돌리면서, 친구에 해당하는 번호가 있는지 확인하고 없으면 바꿔줄 것이기 때문에 숫자를 증가시켜준 후, 증가한 숫자를 출력해주면 바로 끝이다
Leave a Reply