728x90
▼ 문제 바로가기 (링크) ▼
https://leetcode.com/problems/shuffle-the-array/
[x₁, x₂,..., y₁, y₂,...] 형태의 2n개의 요소로 구성된 배열이 주어진다.
[x₁, y₁, x₂,, y₂,.. 형식으로 반환하는 문제.
*아래 첨자는 인덱스 번호를 의미한다.
예를 들어 [1,2,3,4,5,6]라는 배열이 있다면
[1,4,2,5,3,6] 순서로 반환한다.
n개씩 반으로 나누어 앞 요소들의 인덱스와
뒤 요소들 인덱스가 같은 것 끼리 붙이는 것과 같다.
class Solution:
def shuffle(self, nums: List[int], n: int) -> List[int]:
tmp1 = nums[:n]
tmp2 = nums[n:]
a = []
for i in range(n):
a.append(tmp1[i])
a.append(tmp2[i])
return(a)
슬라이싱 연산자 [:] 가 가장 먼저 떠올랐다.
리스트 슬라이싱으로 반으로 나눈 리스트를 각각 임시 변수에 저장하고 반환했다.
Runtime: 140 ms, faster than 18.88%
Memory Usage: 14.1 MB, less than 41.18%
속도가 아쉬워서 discuss 구경하다가 발견한 코드.(출처링크)
https://leetcode.com/problems/shuffle-the-array/discuss/674426/Python-Very-simple-solution.
ans = []
for i in range(n):
ans.append(nums[i])
ans.append(nums[i+n])
return ans
아니 이런 방법이..! 실행 결과는
Runtime: 59 ms, faster than 97.15%
Memory Usage: 14.2 MB, less than 41.18%
변수 2개 만든다고 뭐 얼마나 더 오래 걸리겠어? 싶었는데
차이가 엄청나다.. 다른 사람들 코드 열심히 보면서 배워야겠다..!
728x90
반응형
'코딩 테스트 > leetCode' 카테고리의 다른 글
[leetCode] 2114. Maximum Number of Words Found in Sentences (Python) (0) | 2022.10.12 |
---|---|
[leetCode] 2413. Smallest Even Multiple (Python) (0) | 2022.10.12 |
[leetCode] 1108. Defanging an IP Address (Python) (0) | 2022.10.12 |
[leetCode] 2235. Add Two Integers (Python) (0) | 2022.10.11 |
[leetCode] 1920. Build Array from Permutation (Python) (0) | 2022.10.11 |