"꾸준하고 완벽한 한 걸음"

PS/Baekjoon Online Judge

[백준33559] Infinite Array Swaps [Java]

kimyoungrok 2025. 4. 29. 12:16
728x90

문제

https://www.acmicpc.net/problem/33559

 


풀이

두 배열을 비교하며 서로에게 존재하는 원소 쌍의 수와, 찾은 원소 순서부터 못 찾은 나머지 원소들을 출력하는 문제다.

우선 두 배열을 정렬해주자.

        // Solve
        Arrays.sort(A);
        Arrays.sort(B);

값을 비교하며 서로에게 존재하는 원소 쌍의 수와, 못 찾은 나머지 원소들을 기록하자

        int a = 0, b = 0, cnt = 0;
        while (a < N && b < N) {
            if (A[a] == B[b]) {
                listA.add(A[a++]);
                ++b;
                ++cnt;
            } else if (A[a] < B[b]) {
                tempA.add(A[a++]);
            } else {
                tempB.add(B[b++]);
            }
        }

출력 형식에 맞춰서 원소들을 출력하면 된다.

        // Output
        sb.append(cnt).append("\\n");
        for (Integer e : listA) {
            sb.append(e).append(" ");
        }
        for (Integer e : tempA) {
            sb.append(e).append(" ");
        }
        while (a < N) {
            sb.append(A[a++]).append(" ");
        }
        sb.append('\\n');

        for (Integer e : listA) {
            sb.append(e).append(" ");
        }
        for (Integer e : tempB) {
            sb.append(e).append(" ");
        }
        while (b < N) {
            sb.append(B[b++]).append(" ");
        }
        System.out.println(sb);

풀이 시간

14분


소스코드

https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/easy/33559.java

 

problem-solving/baekjoon-online-judge/easy/33559.java at main · rogi-rogi/problem-solving

Daily Problem Solving Challenges. Contribute to rogi-rogi/problem-solving development by creating an account on GitHub.

github.com

 

728x90