문제 설명
•
리스트를 병합 정렬로 오름차순 정렬하면서, 중간 위치 원소와 왼쪽 마지막 원소가 오른쪽 마지막 원소보다 큰 경우의 수를 출력하는 프로그램을 작성하는 문제
예제 입력/출력
•
입력1
2
5
2 2 1 1 3
10
7 5 4 1 2 10 3 6 9 8
Plain Text
복사
•
출력1
#1 2 0
#2 6 6
Plain Text
복사
제약 조건
•
•
◦
문제 풀이
•
풀이 병합 정렬 -
◦
[알고리즘] 병합 정렬 - Merge Sort (Python) 을 응용하는 문제
◦
리스트를 재귀적으로 분할하여 병합 정렬을 수행
▪
병합 과정에서 왼쪽 마지막 원소가 오른쪽 마지막 원소보다 큰 경우 cnt를 증가
# 왼쪽 마지막 원소가 오른쪽 마지막 원소보다 큰 경우 cnt + 1
if low_arr[-1] > high_arr[-1]:
cnt += 1
Python
복사
▪
정렬이 완료된 후, 리스트의 중간 위치 원소 L[N//2]의 값을 구한다.
풀이 코드
풀이 병합 정렬 -