-
[Java] 백준 11728 배열 합치기Programming/Algorithm 2021. 3. 5. 19:48
문제
정렬되어 있는 배열 A와 B가 주어질 때,
A와 B를 합친 새로운 배열을 정렬된 형태로 출력하는 문제이다.
A와 B의 가장 작은 값을 비교하여 더 작은 값을 새로운 배열에 추가하고 인덱스를 하나 증가시키는 방식을 사용한다.
풀이
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int N = Integer.parseInt(st.nextToken()); int M = Integer.parseInt(st.nextToken()); int[] A = new int[N]; st = new StringTokenizer(br.readLine()); for (int i = 0; i < N; i++) { A[i] = Integer.parseInt(st.nextToken()); } int[] B = new int[M]; st = new StringTokenizer(br.readLine()); for (int i = 0; i < M; i++) { B[i] = Integer.parseInt(st.nextToken()); } int[] res = new int[N + M]; int idx1 = 0, idx2 = 0, index = 0; while (idx1 < N && idx2 < M){ if (A[idx1] <= B[idx2]){ res[index++] = A[idx1++]; } else { res[index++] = B[idx2++]; } } while(idx1 < N){ res[index++] = A[idx1++]; } while(idx2 < M){ res[index++] = B[idx2++]; } StringBuilder sb = new StringBuilder(); for (int i = 0; i < N + M; i++) { sb.append(res[i]).append(" "); } System.out.println(sb); } }
채점결과
'Programming > Algorithm' 카테고리의 다른 글
[Java] 백준 11729 하노이 탑 이동 순서 (0) 2021.03.05 [Java] 백준 1780 종이의 개수 (0) 2021.03.05 [Java] 프로그래머스 징검다리 (0) 2021.03.05 [Java] 프로그래머스 입국심사 (0) 2021.03.05 [Java] 백준 10815 숫자 카드 (0) 2021.03.03 댓글