반응형
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
- 배열
- Doitvue.js입문
- python
- Medium
- 동적계획법
- C++
- 파이썬
- VUE
- 자바스크립트
- javascript
- 카카오
- web
- OS
- Level3
- 코테연습
- 리트코드
- LeetCode
- 리액트
- 프로그래머스
- 백준
- 고득점Kit
- sql
- typescript
- dp
- 프로그래밍
- 웹프로그래밍
- Level2
- Level1
- CS
- react
Archives
- Today
- Total
[리트코드] 75. Sort Colors - python 본문
반응형
75. Sort Colors
문제
Given an array nums with n objects colored red, white, or blue, sort them in-place so that objects of the same color are adjacent, with the colors in the order red, white, and blue.
We will use the integers 0, 1, and 2 to represent the color red, white, and blue, respectively.
You must solve this problem without using the library's sort function.
sort() 라이브러리를 사용하지 않고 in-place로 배열 정렬하기
제한사항
- n == nums.length
- 1 <= n <= 300
- nums[i] is either 0, 1, or 2.
풀이
0이 들어갈 위치를 가리키는 포인터
순회할 포인터
2가 들어갈 위치를 가리키는 포인터를 만든다.
[1, 0, 2, 2, 0, 1, 2, 1, 0]
^^ ^
|| |
idx0, i idx2
nums[i]가 0일 경우 idx0과 바꾸고 idx0과 i를 오른쪽으로 한칸 움직인다.
nums[i]가 2일 경우 idx2과 바꾸고 idx2를 한 칸 움직인다.
(움직인 idx2가 1일수도 있기 때문에 i는 움직이지 않는다.)
1일 경우 i를 한칸 움직인다.
i와 idx2가 교차될 경우 종료한다.
class Solution:
def sortColors(self, nums: List[int]) -> None:
idx0 = 0
idx2 = len(nums) - 1
i = 0
while i <= idx2:
if nums[i] == 0:
nums[idx0], nums[i] = nums[i], nums[idx0]
idx0 += 1
i += 1
elif nums[i] == 2:
nums[idx2], nums[i] = nums[i], nums[idx2]
idx2 -= 1
else:
i += 1
continue
반응형
'코테 문제 풀이' 카테고리의 다른 글
[리트코드] 162. Find Peak Element - python (0) | 2022.04.13 |
---|---|
[리트코드] 88. Merge Sorted Array - python (0) | 2022.04.13 |
[프로그래머스] 가장 긴 팰린드롬 - python (0) | 2022.04.13 |
[리트코드] 680. Valid Palindrome II - python (0) | 2022.04.13 |
[리트코드] 125. Valid Palindrome - python (0) | 2022.04.13 |
Comments