Given an integer array nums, reorder it such that nums[0] < nums[1] > nums[2] < nums[3]....
You may assume the input array always has a valid answer.
그냥 몰라서.. 루션이부터 만나기로..
class Solution:
def wiggleSort(self, nums: List[int]) -> None:
"""
Do not return anything, modify nums in-place instead.
"""
nums.sort()
half = len(nums[::2])
nums[::2], nums[1::2] = nums[:half][::-1], nums[half:][::-1]
nums[::2]
는 nums 를 2칸씩 징검다리로 저장한 것
ex) [1, 2, 3, 4, 5, 6]
=> [1,3,5]
nums[:half][::-1]
는 nums[:half]
의 reverse
천재같다...
잘 보면 nums 의 반씩 깍지 끼듯이 얽혀있음
이대로 외우겠읍니다.
참고: https://leetcode.com/problems/wiggle-sort-ii/discuss/77678/3-lines-Python-with-Explanation-Proof