읽기 전

  • 불필요한 코드나 잘못 작성된 내용에 대한 지적은 언제나 환영합니다.
  • 개인적으로 배운 점을 정리한 글입니다.

문제 링크

LeetCode #1968 Array With Elements Not Equal to Average of Neighbors

문제 풀이

wigle sort 문제라는데 흔히 쓰는 방법은 아니니 따로 암기하진 않는 것이 좋겠다. 각 원소에 대해 양 끝의 원소 평균이 자신과 같지 않도록 재배열된 배열을 리턴해야 한다. 문제의 제약 조건을 가장 잘 맞춘 배열의 형태는 1씩 증가하는 배열이고 이 배열을 재배열하여 조건을 충족하면 나머지 배열에 대해서도 성립할 것이다.

  • 배열을 정렬한다.
  • 짝수 번째 원소를 홀수 번째 원소와 swap하여 양쪽 원소의 평균이 가운데 원소인 경우를 방지한다.

python 코드

class Solution:
    def rearrangeArray(self, nums: List[int]) -> List[int]:
        nums.sort()
        for i in range(1, len(nums), 2):
            nums[i - 1], nums[i] = nums[i], nums[i - 1]
        return nums

+ Recent posts