읽기 전
- 불필요한 코드나 잘못 작성된 내용에 대한 지적은 언제나 환영합니다.
- 개인적으로 배운 점을 정리한 글입니다.
문제 링크
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
'Algorithms > LeetCode' 카테고리의 다른 글
LeetCode #91 Decode Ways (0) | 2021.08.21 |
---|---|
LeetCode #1969 Minimum Non-Zero Product of the Array Elements (0) | 2021.08.21 |
LeetCode #1964 Find the Longest Valid Obstacle Course at Each Position (0) | 2021.08.12 |
LeetCode #241 Different Ways to Add Parentheses (0) | 2021.07.22 |
LeetCode #406 Queue Reconstruction by Height (0) | 2021.07.19 |