๋์ด๋: Medium
ํค์๋: Array
๋ฌธ์
์ฃผ์ด์ง ๋ฐฐ์ด nums์๋ ๋นจ๊ฐ์, ํฐ์ ๋๋ ํ๋์์ผ๋ก ์์น ๋ n๊ฐ์ ๊ฐ์ฒด๊ฐ ์์ต๋๋ค. ์ด๋ค์ ๊ทธ ์๋ฆฌ์์ ์ ๋ ฌํ์ฌ ๋์ผํ ์์์ ๊ฐ์ฒด๊ฐ ์๋ก ์ธ์ ํ๋๋ก ๋ง๋ญ๋๋ค. ์ด๋ ์์์ ๋นจ๊ฐ์, ํฐ์ ๋ฐ ํ๋์ ์์๋ก ๋ฐฐ์ด๋ฉ๋๋ค.
๋นจ๊ฐ์, ํฐ์ ๋ฐ ํ๋์์ ๊ฐ๊ฐ ๋ํ๋ด๊ธฐ ์ํด ์ ์ 0, 1 ๋ฐ 2๋ฅผ ์ฌ์ฉํ ๊ฒ์
๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ๋ ฌ ํจ์๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ํฉ๋๋ค.
๋ฌธ์ ์๋ฌธ: https://leetcode.com/problems/sort-colors/description/
๋ฌธ์ ํ์ด
- ์์ ๊ฐ์๊ฐ ๋ง์ง ์์ผ๋๊น target ์์์ ๋ฐ๊ฟ๊ฐ๋ฉด์ sorting์ ํ์
- in_place ๋ก sorting์ ํด์ผํ๋๊น, swapํด์ผํ index๋ฅผ ๊ธฐ์ตํด๊ฐ๋ฉด์ swapํ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ง์.
- ํ์ฌ ์์์ผ๋ก swapํ ๊ณต๊ฐ์ ์ฐพ๊ณ , ๊ทธ๋ค์ swapํ index๋ฅผ ์ฐพ๋ ๋ฐฉ์์ผ๋ก ๋ฌธ์ ํด๊ฒฐ
Runtime: 0ms Beats100.00%of users with C++
Memory: 9.88MB Beats32.94%of users with C++
๋ฉ๋ชจ๋ฆฌ๋ color ๊ฐ ๋ฒกํฐ๋๋ฌธ์ธ๋ฏ, ๊ทธ๋ฅ 3 ์ดํ์ผ๋๊น์ง๋ก loop๋ฅผ ์์ ํ๋ฉด swap ์ฉ ๋ฉ๋ชจ๋ฆฌ๋ง ์ฌ์ฉํ๋๊น ์ข ๋ ์ต์ ํ ๊ฐ๋ฅ.
class Solution {
public:
void sortColors(vector<int>& nums) {
vector<int> colors={0,1,2};
int last_idx = 0;
for(auto color: colors){
for(int i = 0; i < nums.size(); ++i){
if(nums[i] == color){
auto swp = nums[last_idx];
nums[last_idx++] = nums[i];
nums[i] = swp;
}
// update last_idx
while(last_idx < nums.size() && nums[last_idx] < color){
last_idx++;
}
}
}
}
};
๋ฐ์ํ
'IN DEPTH CAKE > Supercoder' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[c++/LeetCode-Stack] 155. MinStack (1) | 2024.05.05 |
---|---|
[c++/LeetCode-2DArray] 48. Rotate Image (1) | 2024.05.05 |
[c++/LeetCode-Array] 56. Merge Intervals (2) | 2024.05.04 |
[c++/LeetCode-Array] 162. Find Peak Element (1) | 2024.05.02 |
[์ฝ๋ฉ/LeetCode150-(11)] 274. H-Index (2) | 2023.08.23 |