백준

[백준] 배열 합치기 (JAVA)

코 밑 2025. 2. 5. 23:20
Contents

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

 

 

배열 두개를 입력받아서 합친 후 정렬하는 문제다.

첨 봤을 땐 되게 쉬워보였다. 근데 시간초과가 계속 나와서 애먹었다.;;

 

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
import java.util.StringTokenizer;

// 백준 배열 찹치기
// 배열 a 의 크기 n, 배열 b의 크기 m이 주어진다.
// 둘째 줄에는 배열 a의 내용이 셋째 줄에는 배열 b의 내용
// 두 배열을 합쳐서 정렬한 후 출력
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st = new StringTokenizer(br.readLine());
        // 배열 a의 크기, b의 크기
        int n = Integer.parseInt(st.nextToken());
        int m = Integer.parseInt(st.nextToken());
        // 합치기 싫으니까 하나로 합침
        int[] a = new int[n + m];

        // a의 값 입력
        st = new StringTokenizer(br.readLine());
        for (int i = 0; i < n; i++) {
            a[i] = Integer.parseInt(st.nextToken());
        }
        // b의 값 입력
        st = new StringTokenizer(br.readLine());
        for (int i = n; i < n + m; i++) {
            a[i] = Integer.parseInt(st.nextToken());
        }

        Arrays.sort(a);
        StringBuilder sb = new StringBuilder();
        for (int i : a) {
            sb.append(i + " ");
        }
        // sysout보다 빠름
        bw.write(sb.toString());
        bw.close();
    }
}

 

시간을 줄여보려고 이거저거 여러가지 해봤다

System.out.println()은 시간이 오래걸려서 BufferedWriter도 처음 써봤다. 이건 나중에 포스팅해보겠다.

 

어차피 합칠 배열 그냥 하나만 만들었다.

n + m 크기로 만들고 첫번째 입력값은 0 ~ n까지

두번째 입력값은 n ~ m까지 넣었다.

 

정렬 후에 빠른 출력을 위해 StringBuilder를 사용했다.

각 정렬과 공백을 StringBuilder에 넣어주고 BufferedWriter를 이용해 출력한다.

마지막 배열은 알아서 생락된다.

 

취업 준비하는 분들 울지 말고 다들 파이팅...

'백준' 카테고리의 다른 글

[백준] 날짜 계산 (JAVA)  (1) 2025.02.05
[백준] 비밀번호 찾기 (JAVA)  (2) 2025.02.05
[백준] 문자열 집합 (JAVA)  (0) 2025.02.03
[백준] 이친수 (JAVA)  (3) 2025.02.03
[백준] 방 번호 (JAVA)  (1) 2025.02.01