500error
[Cos Pro 1급, Python] 5차 3번 : 배열의 사전순 정렬 본문
반응형
문제
서로 다른 정수 n개가 담긴 배열이 있습니다. 이 배열을 앞 (n+1)/2개 원소는 증가하고 뒤 (n+1)/2개 원소는 감소하도록 정렬하려고 합니다. 이때, 조건을 만족하는 배열이 여럿인 경우 사전순으로 가장 먼저 나오는 배열을 답으로 합니다. 예를 들어, 주어진 배열이 [7, 3, 4, 1, 2, 5, 6]라면 정렬한 이후에는 [1, 2, 3, 7, 6, 5, 4]가 됩니다.
정수 배열 numbers와 numbers의 길이 numbers_len가 매개변수로 주어질 때, 문제의 조건에 맞게 정렬하여 return 하도록 solution 함수를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 한 줄만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.
코드
def solution(numbers):
answer = []
numbers.sort()
mid = (len(numbers) - 1) // 2
numbers[mid], numbers[len(numbers)-1] = numbers[len(numbers)-1], numbers[mid]
left = mid + 1
right = len(numbers) - 2
while left <= right:
numbers[left], numbers[right] = numbers[right], numbers[left]
left = left + 1
right = right - 1
answer = numbers
return answer
numbers = [7, 3, 4, 1, 2, 5, 6]
ret = solution(numbers)
print("solution 함수의 반환 값은", ret, "입니다.")
반응형
'알고리즘 > 파이썬' 카테고리의 다른 글
[Cos Pro 1급, Python] 5차 5번 : 몬스터 잡기 (0) | 2024.03.01 |
---|---|
[Cos Pro 1급, Python] 5차 4번 : 각 숫자가 몇개가 있나요 (0) | 2024.03.01 |
[Cos Pro 1급, Python] 5차 2번 : 물을 최대로 담고 싶어요 (0) | 2024.03.01 |
[Cos Pro 1급, Python] 5차 1번 : 우리는 계단도 특별하게 오르죠 (0) | 2024.03.01 |
[Cos Pro 1급, Python] 4차 10번 : 소수의 세제곱이 몇개가 있나요 (1) | 2024.02.29 |
Comments