Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- 코틀린기초
- python 릿코드
- 파이썬알고리즘풀기
- 릿코드 파이썬
- python priority queue
- 파이썬 릿코드
- LeetCode
- 파이썬알고리즘
- 파이썬릿코드풀기
- leetcode풀기
- python Leetcode
- leetcode풀이
- python 알고리즘
- binary search
- 파이썬 프로그래머스
- 파이썬 알고리즘 풀기
- python zip_longest
- 파이썬릿코드
- 파이썬 알고리즘
- 릿코드
- python xor
- 릿코드풀기
- 릿코드풀이
- 알고리즘풀이
- 상가수익률계산기
- leetcode 풀기
- python sorted
- 알고리즘풀기
- 릿코드 풀기
- 잇츠디모
Archives
- Today
- Total
소프트웨어에 대한 모든 것
2149. Rearrange Array Elements by Sign 본문
반응형
문제)
2149. Rearrange Array Elements by Sign
2149. Rearrange Array Elements by Sign
Medium
110664Add to ListShareYou are given a 0-indexed integer array nums of even length consisting of an equal number of positive and negative integers.
You should rearrange the elements of nums such that the modified array follows the given conditions:
- Every consecutive pair of integers have opposite signs.
- For all integers with the same sign, the order in which they were present in nums is preserved.
- The rearranged array begins with a positive integer.
Return the modified array after rearranging the elements to satisfy the aforementioned conditions.
Example 1:
Input: nums = [3,1,-2,-5,2,-4]
Output: [3,-2,1,-5,2,-4]
Explanation:
The positive integers in nums are [3,1,2]. The negative integers are [-2,-5,-4].
The only possible way to rearrange them such that they satisfy all conditions is [3,-2,1,-5,2,-4].
Other ways such as [1,-2,2,-5,3,-4], [3,1,2,-2,-5,-4], [-2,3,-5,1,-4,2] are incorrect because they do not satisfy one or more conditions.
Example 2:
Input: nums = [-1,1]
Output: [1,-1]
Explanation:
1 is the only positive integer and -1 the only negative integer in nums.
So nums is rearranged to [1,-1].
Constraints:
- 2 <= nums.length <= 2 * 105
- nums.length is even
- 1 <= |nums[i]| <= 105
- nums consists of equal number of positive and negative integers.
솔루션1)
class Solution:
def rearrangeArray(self, nums: List[int]) -> List[int]:
positives = []
negatives = []
for n in nums:
if n >= 0:
positives.append(n)
else:
negatives.append(n)
ret = []
for p, n in zip(positives, negatives):
ret.append(p)
ret.append(n)
return ret
솔루션2)
- 솔루션1을 최적화해서 반복문 한 개로 처리
class Solution:
def rearrangeArray(self, nums: List[int]) -> List[int]:
ret = [0] * len(nums)
p_idx = 0
n_idx = 1
for n in nums:
if n >= 0:
ret[p_idx] = n
p_idx += 2
else:
ret[n_idx] = n
n_idx += 2
return ret
반응형
'알고리즘 > LeetCode' 카테고리의 다른 글
404. Sum of Left Leaves (0) | 2022.12.28 |
---|---|
872. Leaf-Similar Trees (0) | 2022.12.27 |
2148. Count Elements With Strictly Smaller and Greater Elements (0) | 2022.12.27 |
2103. Rings and Rods (0) | 2022.12.27 |
1365. How Many Numbers Are Smaller Than the Current Number (0) | 2022.12.25 |
Comments