Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
๐ ๋ฌธ์ ๋งํฌ
Minimum Swaps to Group All 1's Together II
โ๏ธ ์์๋ ์๊ฐ
4์๊ฐ
โจ ์๋ ์ฝ๋
๋ฌธ์ ๊ฐ์
0๊ณผ 1๋ก ์ด๋ฃจ์ด์ง ์ํ ๋ฐฐ์ด
nums
๊ฐ ์ฃผ์ด์ง ๋ 1๋ก๋ง ์ด๋ฃจ์ด์ง ๊ทธ๋ฃน์ ๋ง๋ค๊ธฐ ์ํด์ ์ต์ํ์ ์ค์์ด ๋ช ๋ฒ ์ด๋ฃจ์ด์ง๋ ์ง ๊ตฌํ๊ธฐ.์ฆ
10001100
์ผ ๋ ->00011100
์ผ๋ก ๊ตฌ์ฑํ๊ธฐ ์ํ์ฌ ์ต์ ํ ๋ฒ์ ์ค์์ด ์ด๋ฃจ์ด์ง๋ ๊ฒ์ ํ์ธํ ์ ์์.์ฒซ๋ฒ์งธ ์ ๊ทผ ๋ฐฉ์
์ฃผ์ด์ง
nums
๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์์ ๋ง์ง๋ง ์์๊ฐ 1์ผ ๊ฒฝ์ฐ 1๋ก๋ง ์ด๋ฃจ์ด์ง ๊ทธ๋ฃน๋ค์ ๊ฐ์์์ ๋์ ํฉํ์ฌ ๊ฐ์ฅ ๋ง์ด ๋ชจ์ธ ๊ทธ๋ฃน์ ํฉ์น๋ ๋ฐฉ์์ผ๋ก ์๊ฐํ์๋ค.๋ง์ฝ
nums
๊ฐ1001110001
๋ก ์ด๋ฃจ์ด์ ธ ์๋ค๋ฉด 1์ ๊ทธ๋ฃน์ ๋ํ ์ ๋ณด๋ฅผ ๋ด์ ๋ฐฐ์ดoneArr
์๋ 1, 3, 1์์ ์ํ ๋ฐฐ์ด์ด๊ธฐ์ ์ฒซ ๋ฒ์งธ ๊ทธ๋ฃน๊ณผ ๋ง์ง๋ง ๊ทธ๋ฃน์ ํฉํ์ฌ 2, 3์ผ๋ก ์์ ํด์ค๋ค.๊ฐ์ฅ ํฐ ๊ทธ๋ฃน์ 1์ด 3๊ฐ๋ชจ์ธ ๊ทธ๋ฃน์ด๋ฏ๋ก ์ ์ฒด 5๊ฐ์ 1๋ค ์ค์์ 2๊ฐ๋ง ์์ง์ฌ 3์ผ๋ก ๋ถ๋ ์์ผ๋ก ์๊ฐํ์๋ค.
์ฌ๊ธฐ์ ๋ฐ๊ฒฌํ ๋ฌธ์ ์ ์ ๋ง์ฝ
10111001
์ผ ๊ฒฝ์ฐ11111000
์ผ๋ก 1๊ฐ๋ง ์์ง์ฌ์ 1์ ๊ทธ๋ฃน๋ง ๋ง๋ค์ด์ค ์ ์๋ค๋ ์ ์ ๋ด์ฐฉํ๊ฒ ๋์๋ค.ํ์ด ๋ฐฉ์
์ฌ๋ผ์ด๋ฉ ์๋์ฐ ๋ฐฉ์์ผ๋ก ํด๋น ๋ฐฐ์ด์ ์กด์ฌํ๋ 1๊ณผ 0์ ๋ํด์ ๊ฐ๊ฐ ์ ์ฒด ๊ฐ์๋ฅผ ๊ตฌํ ๋ค. ์ ์ฒด ๊ฐ์์์ ๊ฐ์ฅ ๋ง์ ๊ทธ๋ฃน์ ๋นผ์ค์ผ๋ก์จ ์ฑ์๋ฃ์ด์ผํ๋ ํ์ํ ๊ฐ์๋ค์ ํ์ ํ๋ ์์ผ๋ก ์งํ.
totalCnt
๋ณ์์๋ค๊ฐ ๊ตฌํด์ค๋ค.totalCnt
๊ฐ 0์ด๊ฑฐ๋ ๋ฐฐ์ด ๊ธธ์ด์ ๊ฐ๋ค๋ฉด ์ด๋ ๋ชจ๋ ๋ฐฐ์ด์ด 1๋ก ์ด๋ฃจ์ด์ ธ ์๊ฑฐ๋ ์์ ์๋ ๊ฒฝ์ฐ์ด๋ฏ๋ก ๊ฒฝ์ฐ์ ์๋ ์๋ค.totalCnt
๊ฐ์ ๋งํผ ์ด๋์์ผ์ 1์ด ๋์จ๋งํผcurValCnt
์ ์ถ๊ฐํด์ค๋ค.totalCnt
์ธ๋ฑ์ค ๋งํผ์๋ 1์ดcurValCnt
๋งํผ ์กด์ฌํ๊ธฐ์ ์ฐ๋ฆฌ๋ ๊ทธ๋ฃน ์ต๋ ๊ฐ์maxValCnt
๊ฐ์ ์ ๋ฐ์ดํธํด์ค๋ค.totalCnt
๋งํผ ์ด๋ํend
๋ณ์๋ถํฐ 0๋ฒ ์ธ๋ฑ์ค๋ถํฐ ๋ฐฉ๋ฌธํ๋start
๋ณ์๊น์ง ๋น๊ตํด์ฃผ๋๋ฐend
๋ณ์๊ฐ ๋ฐฐ์ด์ ๊ธธ์ด์ ๊ฐ์์ง ๋ ๊น์ง ์งํํด์ค๋ค.end
์ ๊ฐ์ด ์ ์ ์ฆ๊ฐํจ์ ๋ฐ๋ผ 1๋ฒ์ด ๋์ฌ ๊ฒฝ์ฐcurValCnt
์ ๊ฐ์ ์ฆ๊ฐ์์ผ์ค๋ค.start
์์end
๊น์งtotalCnt
ํฌ๊ธฐ๋งํผ ๋น๊ตํด์ฃผ๊ธฐ์start
๋ ๊ฐ์ ์ฆ๊ฐ์์ผ์ฃผ๋ฉด์start
๋ณ์์ ๊ฐ์ 1์ด ๋์ค๊ฒ ๋ ๊ฒฝ์ฐ ๋น ์ ธ๋๊ฐ๊ฒ ๋๋ฏ๋กcurValCnt
๊ฐ์ ๊ฐ์์์ผ์ค๋ค.maxValCnt
๋ณ์์ ์ต๋ ๊ทธ๋ฃน ๊ฐ์๋ฅผ ์ ๋ฐ์ดํธ ์์ผ์ฃผ๊ณtotalCnt
์์ ๊ทธ๋ฃน์ ์ต๋ ๊ฐ์maxValCnt
๊ฐ ๋งํผ ๋นผ์ค์ผ๋ก์จ ์ฑ์ ๋ฃ์ด์ผํ 1์ ๊ฐ์๋ค์ ํ์ ํ ์ ์๋ค.์ฌ๊ธฐ์ ํ๋ ์ง๊ณ ๊ฐ์ผํ ์ ์ ์ํํ๋ค๋ ์ ์ด๋ค.
11001
๊ณผ ๊ฐ์ด ์ฃผ์ด์ก์ ๋ 1๋ก๋ง ํ์ ์ ํ๊ฒ๋๋ฉด 1๋ฒ๋ง ์ค์์ ํ๊ฒ๋๋ ๊ฒ์ ํ์ธํ ์ ์์ง๋ง 0์ ๊ธฐ์ค์ผ๋ก ์งํํ์์ ๋ ์ค์ํ ํ์๊ฐ ์๋ค๋ ๊ฒ์ ํ์ธ ํ ์ ์๋ค.011100110
์ด ์ฃผ์ด์ก์ ๋ 1์ ๊ฐ์๋ 5๊ฐ ์ด๋ฏ๋กtotalCnt
๊ฐ 5๋ผ๋ ๊ฒ์ ํ์ ํ ์ ์๋ค. ์ฐ๋ฆฌ๋end
๊ฐ 5์์ ์์ํ๊ณstart
๋ณ์๊ฐ 0์์ ์์ํ๋ฉด์end
๊ฐ 1์ ๋ง์ฃผํ์ ๋curValCnt
๋ฅผ ์ฆ๊ฐ.start
๋ฅผ ๋ง์ฃผํ์ ๋ ๊ฐ์ํ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.์ต๋ ๊ทธ๋ฃน์ด 3์ผ๋ก ์ ์ฒด ๊ฐ์ 5๊ฐ์์ 3๊ฐ๋ฅผ ๋นผ์ค์ผ๋ก์จ ์ฐ๋ฆฌ๋ 2๋ฒ์ ์ค์์ด ํ์ํ๋ค๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
๐ ์๋กญ๊ฒ ์๊ฒ๋ ๋ด์ฉ