[BOJ] 백준 11728. 배열 합치기

2024. 5. 15. 11:12· Java/BOJ

문제

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

 

 


풀이

두 가지 방법으로 문제를 해결할 수 있었습니다. Arrays.sort 메서드를 통해 단순히 구현하는 법과 포인터를 이용하는 법입니다.

 

포인터를 이용할 때에는, 두 배열에 대해 0부터 시작하는 포인터를 하나씩 두고, 둘 중 하나라도 포인터가 끝에 도달하면 while문을 멈춥니다. 그리고 끝까지 도달한 배열이 아닌, 다른 배열의 값을 모두 append 해주었습니다.

 

아래는 소스 코드입니다.


소스 코드

1. pointer 이용

import java.util.Arrays;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int M = sc.nextInt();
        int[] A = new int[N];
        int[] B = new int[M];
        for(int i = 0;i<N;i++){
            A[i] = sc.nextInt();
        }
        for(int i = 0;i<M;i++){
            B[i] = sc.nextInt();
        }
        Arrays.sort(A);
        Arrays.sort(B);

        int pointA = 0;
        int pointB = 0;

        StringBuilder sb = new StringBuilder();

        while(pointA<N&&pointB<M){
            if(A[pointA]<=B[pointB]){
                sb.append(A[pointA]+" ");
                pointA++;
            }
            else if(A[pointA]>B[pointB]){
                sb.append(B[pointB]+" ");
                pointB++;
            }
        }
        if(pointA==N){
            while(pointB<M){
                sb.append(B[pointB++]+" ");
            }
        }
        if(pointB==M){
            while(pointA<N){
                sb.append(A[pointA++]+" ");
            }
        }

        System.out.println(sb);
    }
}

 

2. Arrays.sort 이용

import java.util.Arrays;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int M = sc.nextInt();
        int[] AB = new int[N+M];
        for(int i = 0;i<N;i++){
            AB[i] = sc.nextInt();
        }
        for(int i = N;i<N+M;i++){
            AB[i] = sc.nextInt();
        }
        Arrays.sort(AB);
        StringBuilder sb = new StringBuilder();
        for(int i : AB){
            sb.append(i+" ");
        }
        System.out.println(sb);
    }
}

'Java > BOJ' 카테고리의 다른 글

[BOJ] 백준 14890. 경사로  (0) 2024.05.27
[BOJ] 백준 13335. 트럭  (1) 2024.05.18
[BOJ] 백준 2828. 사과 담기 게임  (0) 2024.05.14
[BOJ] 백준 14244. 트리 만들기  (0) 2024.05.13
[BOJ] 백준 17073. 나무 위의 빗물  (0) 2024.05.12
'Java/BOJ' 카테고리의 다른 글
  • [BOJ] 백준 14890. 경사로
  • [BOJ] 백준 13335. 트럭
  • [BOJ] 백준 2828. 사과 담기 게임
  • [BOJ] 백준 14244. 트리 만들기
동구름이
동구름이
동구름이
동구름
동구름이
전체
오늘
어제
  • 분류 전체보기 (178)
    • Java (63)
      • Java 를 파헤쳐보자 (13)
      • BOJ (45)
      • 프로그래머스 (3)
      • SWEA (1)
      • Java GUI (1)
    • JavaScript (17)
      • JS를 파헤쳐보자 (7)
      • 프로그래머스 (7)
      • JS 학습 정리 (1)
    • Backend (33)
      • Spring (3)
      • HTTP (7)
      • 프로젝트 (10)
      • MySQL (6)
      • Redis (3)
      • Elastic Search (1)
      • 인증, 인가 (3)
    • CS (57)
      • 운영체제 (35)
      • Network (22)
    • Git (2)
    • 개발 관련 이것저것 (2)
    • etc (1)
    • 독서 (0)
    • 사설 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 한양대
  • 김영한
  • 자바스크립트
  • 네트워크
  • 구현
  • 스택
  • 레디스
  • 큐
  • 모든 개발자를 위한 HTTP 웹 기본 지식
  • 인프런
  • JCF
  • 운영체제
  • 이석복
  • OS
  • Java
  • 프로그래머스
  • 반효경
  • 백준
  • 자바
  • BOJ

최근 글

hELLO · Designed By 정상우.v4.2.2
동구름이
[BOJ] 백준 11728. 배열 합치기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.