https://www.youtube.com/watch?v=Mv2jn-_4AqM&list=PLnp1rUgG4UVbZ9t778bKYSH9G5UhllEIE&index=8
오름차순으로 정렬되어있는 두 리스트 arrA, arrB를 하나의 리스트로 합치려 합니다. 단, 합친 후의 리스트도 오름차순으로 정렬되어 있어야 합니다.
예를 들어 arrA = [-2, 3, 5, 9], arrB = [0, 1, 5]인 경우 두 리스트을 오름차순으로 정렬된 하나의 리스트로 합치면 [-2, 0, 1, 3, 5, 5, 9]가 됩니다.
오름차순으로 정렬된 두 리스트 arrA와 arrB가 주어졌을 때, 두 리스트를 오름차순으로 정렬된 하나의 리스트로 합쳐서 return 하도록 solution 함수를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해주세요.
매개 변수 설명
- 오름차순으로 정렬된 두 리스트 arrA와 arrB가 solution 함수의 매개변수로 주어집니다.
- arrA의 길이는 1 이상 200,000 이하입니다.
- arrA의 원소는 -1,000,000 이상 1,000,000 이하의 정수입니다.
- arrB의 길이는 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 :
#arrA의 인덱스가 가리키는게 더 작다 -> 작은게 answer에 들어간다
if arrA[arrA_idx] < arrB[arrB_idx] :
answer.append(arrA[arrA_idx])
arrA_idx += 1
#arrB의 인덱스가 가리키는게 더 작다 -> 작은게 anser로 들어간다
else :
answer.append(arrB[arrB_idx])
arrA_idx += 1
#하나의 인덱스가 빠져나와버려서 나머지를 처리해야했을 때
#arrB_idx는 끝에 도달해서 위의 반복문이 끝났는데
#arrA_idx가 아직 끝에 도달하지 못했다 -> 나머지 arrA 값을 answer 넣어줘라
while arrA_idx < arrA_len :
answer.append(arrA[arrA_idx])
arrA_idx += 1
#arrB_idx 끝에 도달해서 위의 반복문이 끝났는데
#arrB_idx 아직 끝에 도달하지 못했다 -> 나머지 arrB 값을 answer 넣어줘라
while arrB_idx < arrB_len :
answer.append(arrB[arrB_idx])
arrB_idx += 1
return answer
#The following is code to output testcase.
arrA = [-2, 3, 5, 9]
arrB = [0, 1, 5]
ret = solution(arrA, arrB);
#Press Run button to receive output.
print("Solution: return value of the function is ", ret, " .")
'코테풀이 > 정렬' 카테고리의 다른 글
[백준 | JS] 10814번: 나이순 정렬 (0) | 2023.04.30 |
---|---|
[백준 | JS] 18870번: 좌표 압축 (0) | 2023.04.29 |
[백준 | JS] 11651번: 좌표 정렬하기 2 (0) | 2023.04.29 |
[백준 | JS] 11650: 좌표 정렬하기 (0) | 2023.04.29 |
Cos Pro 1급 1회 문제 7(머지소트, 병합정렬)