[COS PRO 1급] 1차 문제7) 병합 and 정렬

아현·2023년 7월 26일
0

Algorithm

목록 보기
372/400

연습문제


병합 and 정렬


오름차순으로 정렬되어있는 두 배열 arrA, arrB를 하나의 배열로 합치려 합니다. 단, 합친 후의 배열도 오름차순으로 정렬되어 있어야 합니다.
예를 들어 arrA = [-2, 3, 5, 9], arrB = [0, 1, 5]인 경우 두 배열을 오름차순으로 정렬된 하나의 배열로 합치면 [-2, 0, 1, 3, 5, 5, 9]가 됩니다.
오름차순으로 정렬된 두 배열 arrA와 arrA의 길이 arrA_len, arrB와 arrB의 길이 arrB_len이 주어졌을 때, 두 배열을 오름차순으로 정렬된 하나의 배열로 합쳐서 return 하도록 solution 함수를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해주세요.

□ 매개변수 설명

오름차순으로 정렬된 두 배열 arrA와 arrA의 길이 arrA_len, arrB와 arrB의 길이 arrB_len이 solution 함수의 매개변수로 주어집니다.
arrA_len은 1 이상 200,000 이하의 자연수입니다..
arrA의 원소는 -1,000,000 이상 1,000,000 이하의 정수입니다.
arrB_len 길이는 1 이상 200,000 이하의 자연수입니다.
arrB의 원소는 -1,000,000 이상 1,000,000 이하의 정수입니다.

□ return 값 설명

두 배열 arrA, arrB를 오름차순으로 정렬된 하나의 배열로 합쳐서 return 해주세요.




def solution(arrA, arrB):
	arrA_idx = 0
	arrB_idx = 0
	arrA_len = len(arrA)
	arrB_len = len(arrB)
	answer = []
	while arrA_idx < arrA_len and arrB_idx < arrB_len:
		if arrA[arrA_idx] < arrB[arrB_idx]:
			answer.append(arrA[arrA_idx])
			arrA_idx += 1
		else:
			answer.append(arrB[arrB_idx])
			arrB_idx += 1
	while arrA_idx < arrA_len:
		answer.append(arrA[arrA_idx])
		arrA_idx += 1
	while arrB_idx < arrB_len:
		answer.append(arrB[arrB_idx])
		arrB_idx += 1
	return answer
profile
For the sake of someone who studies computer science

0개의 댓글