[11728] 배열 합치기 | 백준 실버 5

yoongyum·2022년 4월 10일
0

코딩테스트 🧩

목록 보기
8/47
post-thumbnail

🔎 문제설명

문제링크
정렬되어있는 두 배열 A와 B가 주어진다. 두 배열을 합친 다음 정렬해서 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다.
둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다.

출력

첫째 줄에 두 배열을 합친 후 정렬한 결과를 출력한다.

📑 결과 예시

Example 1

inputoutput
2 2
3 5
2 9
2 3 5 9

Example 2

inputoutput
4 3
2 3 5 9
1 4 7
1 2 3 4 5 7 9

제한사항

  • 1 ≤ N, M ≤ 1,000,000
  • 배열에 들어있는 수는 절댓값이 10910^9 보다 작거나 같은 정수이다.




🧪 자바 코드

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());

        //(1 ≤ N, M ≤ 1,000,000)
        int N = Integer.parseInt(st.nextToken());   //배열 A의 크기
        int M = Integer.parseInt(st.nextToken());   //배열 B의 크기

        st = new StringTokenizer(br.readLine());

        ArrayList<Integer> Arr = new ArrayList<>();

        while(st.hasMoreTokens()){
             Arr.add(Integer.parseInt(st.nextToken()));
        }

        st = new StringTokenizer(br.readLine());

        while(st.hasMoreTokens()){
            Arr.add(Integer.parseInt(st.nextToken()));
        }

        Collections.sort(Arr);    //정렬

        for(int a : Arr){	//출력
            bw.write(a+" ");
        }
        bw.flush();
        bw.close();
    }

🧊 파이썬 코드

import sys

input = lambda : sys.stdin.readline().rstrip()

input()	#배열 A, B의 크기 N, M

res = list(map(int, input().split())) + list(map(int, input().split())) # A + B

res.sort()	#정렬

print(*res)	#res원소 출력

🍕 Short code

import sys

input = lambda : sys.stdin.readline().rstrip()

input()	#배열 A, B의 크기 N, M

print(' '.join(map(str,sorted((input()+' '+input()).split(),key = int))))

join()을 사용하여 출력하는게 더 시간효율이 좋게 나왔습니다.




💡 join()

join()은 매개변수로 들어온 리스트속 요소들을 각각 합쳐서 하나의 문자열로 리턴합니다.

기본포맷

'구분자'.join(<문자열 리스트>)

예제 1

a = ['a', 'b', 'c', 'd']

print(''.join(a))	#구분자가 ''이므로 각각의 요소가 붙어서 출력됩니다.

# 출력결과
abcd

예제 2

a = ['010', '123', '4567']

print('-'.join(a))

# 출력결과
010-123-4567

0개의 댓글