์ด๋ฒ์ฃผ๋ ๋ฆฌํธ์ฝ๋ Top Interview 150 ๋ฌธ์ ๋ฆฌ์คํธ์์ Array/String ๋ฌธ์ 5๊ฐ๋ฅผ ํ์๋ค.
๋์ด๋: โ โ
์ด๋ฏธ ๋ฐฐ์ด์ด ์ ๋ ฌ๋์ด ์๊ธฐ ๋๋ฌธ์ Two pointer ๋ฐฉ๋ฒ์ ์ฌ์ฉํด์ ํ ์ ์๋ค. ํน์ด์ ์ nums1 ๋ฐฐ์ด์ ์ ๋ ฌ๋ ์์๋ฅผ ๋ฃ์ด์ผ ํด์ ๋ฐฐ์ด ๋งจ ๋์ ์๋ ์์๋ถํฐ ๋น๊ตํด์ ์ฑ์๋ฃ์ผ๋ฉด ๋๋ค. Merge sort๋ฅผ ๊ตฌํํ ์ ์์ผ๋ฉด ์ด๋ ต์ง ์๊ฒ ํ ์ ์๋ ๋ฌธ์ .
๋์ด๋: โ โ โ โ โ
์ด ๋ฌธ์ ๋ ์ง์ง easy ๋ ๋ฒจ์ธ๋ฐ ์ฝ๊ฒ ์๊ฐ์ ๋ชปํด์ ์๋์ฒ๋ผ ํ๋ ค๊ณ ํ๋ค. start, end๋ก start๋ ์กฐ๊ฑด์ ๋ง๋ ์์๊ฐ ๋ค์ด๊ฐ ์์น๋ฅผ ๊ฐ๋ฅดํค๊ณ end๋ ์กฐ๊ฑด์ ๋ง๋ ์์๋ฅผ ์ฐพ๋ ๋ฐฉ์์ด์๋๋ฐ ๋ ๋ด๊ฐ ์๊ฐํ๋๋ก ์ฝ๋๋ฅผ ๊ตฌํํ๋ ๊ฒ์ ๋งํ์ (์กฐ๊ฑด ์ฒดํฌํ๋ ๋ถ๋ถ์ด ๋๋ฌด ๋ง์ด ๋ค์ด๊ฐ) ํผ์ ๊ตฌํ์ ๋ชปํ๊ณ ๊ฒฐ๊ตญ ์๋ฃจ์ ์ ์ฐพ์๋ด.
์๋ฅผ ๋ค์ด, nums = [3, 2, 2, 3], val = 3์ด input์ผ๋ก ์ฃผ์ด์ง ๊ฒฝ์ฐ start์ end์ ์์น๋ ๊ฐ๊ฐ ์์๊ณผ ๋์ ๊ฐ๋ฅดํจ๋ค.
while(start <= end) ์กฐ๊ฑด์ start๊ฐ end๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๊ฒฝ์ฐ ๊ณ์ ๋ฐ๋ณต๋๋ค. 0๋ฒ์งธ ์์น์์ ์์ํ start๊ฐ end๋ณด๋ค ๋ ์ปค์ง ๊ฒฝ์ฐ ์ฆ start์ end๊ฐ ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ํ์์ ์๋ฃํ์ ๋ while๋ฌธ์ด ์ข ๋ฃ๋๋ค.
start ํฌ์ธํฐ๊ฐ ๊ฐ๋ฅด์น๋ ์์๊ฐ ์ฃผ์ด์ง val๊ณผ ๊ฐ์ง ์์ผ๋ฉด ๊ณ์ ํ์นธ์ฉ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํ๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก while๋ฌธ์ด ์ข ๋ฃ๋์ ๋ start๋ val๊ณผ ๊ฐ์ ์์๋ฅผ ๊ฐ๋ฅดํค๊ณ ์๊ณ ์ด start์ ์์น๋ val๊ณผ ๋ค๋ฅธ, remove ํ ํ์๊ฐ ์๋ ์์๊ฐ ๋ค์ด๊ฐ ์๋ฆฌ์ด๋ค.
end ํฌ์ธํฐ๋ ํ์นธ์ฉ ์ผ์ชฝ์ผ๋ก ์ด๋ํ๋ฉด์ val๊ณผ ๊ฐ์ง ์์ ์์๊ฐ ์๋ ์์น์์ ๋ฉ์ถ๋ค.
while๋ฌธ์ด ๋ค ๋๋ฌ์ ๋ start์ end์ ์์น๋ ๋ค์๊ณผ ๊ฐ๋ค.
start๋ remove ํด์ผ๋ ์์๋ฅผ ๊ฐ๋ฆฌํค๊ณ ์๊ณ end๋ ํ์ํ ์์์ ์์น๋ฅผ ๊ฐ๋ฅดํค๊ณ ์๊ธฐ ๋๋ฌธ์ ๊ฐ์ swap ํด์ค๋ค.
์ฌ๊ธฐ๊น์ง ์คํ๋๋ฉด val๊ณผ ๊ฐ์ ๊ฐ์ธ 3๊ณผ val์ด ์๋ 2์ ๊ฐ์ ์์น๊ฐ ์๋ก ๋ฐ๋๊ณ start์ end๋ ํ์นธ์ ์ด๋ํด์ ์๋ก ๊ฐ์ ๊ณณ์ ๊ฐ๋ฆฌํจ๋ค. while๋ฌธ์ ์ข ๋ฃ ์กฐ๊ฑด์ด start <= end์ด๊ธฐ ๋๋ฌธ์ start == end์ผ ๊ฒฝ์ฐ์๋ ๋์ํ๋ค.
์ฌ๊ธฐ์ start ์กฐ๊ฑด์ while๋ฌธ์ด ์คํ๋๊ณ ๋๋ฉด start <= end ์กฐ๊ฑด์ด false๊ฐ ๋จ์ผ๋ก end์ while๋ฌธ์ ์คํ๋์ง ์๊ณ start์ end์ ์์น๋ ๋ค์๊ณผ ๊ฐ๋ค.
start๋ remove ํด์ผ ๋ ๊ฐ, end๋ remove ํ์ง ์์์ผ ํ ๊ฐ์ ๊ฐ๋ฅดํค๊ณ ์๊ธฐ ๋๋ฌธ์ ์ด ๋ ๊ฐ์ swap ํด์ฃผ์์ง๋ง ๋ง์ฝ start๊ฐ end๋ณด๋ค ๊ฐ์ผ๋ฉด ๋ถํ์ํ swap์ ํ์ง ์์๋ ๋๊ณ , start๊ฐ end๋ณด๋ค ํฌ๋ค๋ฉด ์ด๋ฏธ ์ด๋ก์ ๋ถ๋ถ nums[0...start) ๊น์ง๋ val ๊ฐ์ด ์ ๊ฑฐ๋ ์์๋ค๋ง ๋ค์ด๊ฐ ์๊ธฐ ๋๋ฌธ์ swap์ ํ์ง ์์์ผ ํ๋ค.
๊ทธ๋์ ๊ฒฐ๊ณผ์ ์ผ๋ก๋ start ๊ฐ์ ๋ฆฌํดํด์ฃผ๋ฉด ์ด๋ ๊ฒ ํ ์๋ ์๋ค. ํ์ง๋ง while๋ฌธ ์์ ๊ฐ๊ฐ์ while๋ฌธ๋ break์กฐ๊ฑด ๋ฐ index๋ฒ์ ์ฒดํฌํ๋ ๋ก์ง์ด ํ์ํ๊ณ swap๋ start < end์ผ๋๋ง ๊ฐ๋ฅํ๋๋ก ์กฐ๊ฑด์ ๋ฃ์ด์ค์ผ ํ๋๋ฐ ์ด๋ฌํ ์กฐ๊ฑด๋ค์ ์์ฑํ๋ ๊ฒ์ด ์ด๋ ค์ ๋ค.
์ด๊ฑด ๋ด๊ฐ ์์ฑํ ์ฝ๋๋ณด๋ค ๊ฐ๊ฒฐํ๋ฐ start๋ ์์์ end๋ ๋ค์์๋ถํฐ ํ์ธํ๋๋ฐ start์ ๊ฐ์ด val์ผ ๊ฒฝ์ฐ ์ด ๊ฐ์ remove๋์ด์ผ ํ๋๊น ๋ค์์ ๊ฐ์ ๋ฃ์ด์ฃผ๊ณ ํ์นธ์ฉ ์์ผ๋ก ์ด๋ํ๋ค. ๊ทธ๋ฐ๋ค์ start๊ฐ์ด val์ด ์๋๋ฉด ํ์นธ์ฉ ์์ผ๋ก ์ด๋ํ๋ค.
์ด ๋ฌธ์ ๋ while๋ฌธ๋ณด๋ค for๋ฌธ์ผ๋ก ๊ตฌํ๋ ์ฝ๋๊ฐ ํจ์ฌ ์ง๊ด์ ์ด๋ค.
for๋ฌธ์ผ๋ก ์์ฑํ๋ฉด i๊ฐ ๋ชจ๋ ์์๋ฅผ ์ํํ๋ฉด ๊ฐ์ ํ์ธํ๊ณ index๋ณ์๋ก(val์ด ์๋ ๊ฐ์ด ๋ค์ด๊ฐ ์์น๋ฅผ ๊ธฐ๋ก) val์ด ์๋ ๊ฐ์ ๋ฃ์ด์ค๋ค. ์ด ์ ํ๋ธ๋ฅผ ๋ณด๋ฉด ๋ฐฐ์ด์ ๊ทธ๋ฆผ์ผ๋ก ๋ณด์ฌ์ค์ ์ฝ๋๊ฐ ์ด๋ป๊ฒ ๋์ํ๋์ง ์ดํดํ๊ธฐ ์ฝ๋ค.
โ Remove Duplicates from Sorted Array
๋์ด๋: โ โ
removeElement ๋ฌธ์ ๋ฅผ ์ ํ์์ผ๋ฉด ์ฝ๊ฒ ํ ์ ์๋ค.
โ Remove Duplicates from Sorted Array 2
๋์ด๋: โ โ
์ ๋ฌธ์ ๋ฅผ ๋ฌธ์ ๋ฅผ ์ ํ์์ผ๋ฉด ์ฝ๊ฒ ํ ์ ์๋ค. count๋ณ์๋ฅผ ํ์ฉํ ์ ์๋ค๋๋ฐ ๋๋ ๊ทธ๋ฅ ์ด์ ์์๋ฅผ ๋น๊ตํด์ ํ.
๋์ด๋: โ โ โ โ โ
์ด ๋ฌธ์ ๋ hashmap์ ์ฌ์ฉํด์ ํ๋ฉด ์ ๋ง ๊ฐ๋จํ ํ ์ ์๋ ๋ฌธ์ ์ด์ง๋ง space complexity๋ฅผ O(1)๋ก ํธ๋ ๊ฑด ๋ ๋ค๋ฅธ๋ฌธ์ ๋ผ ์ ๋ฒ์๋ O(1)์ผ๋ก ํธ๋ ๋ฐฉ๋ฒ์ ๋ดค๋๋ฐ ๋ค์ ํ๋ฉด ์๊ฐ์ด ์๋๋ค....
'์ฝ๋ฉํ ์คํธ > TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[LC150] ๋ฆฌํธ์ฝ๋ Top Interview 150 ์์ (0) | 2025.03.11 |
---|---|
[99ํด๋ฝ] 5์ฃผ ์ฝํ ์คํฐ๋ ํ๊ธฐ (0) | 2025.02.27 |
[99ํด๋ฝ] 21์ผ์ฐจ ๋ฌธ์ : ํ์ผ ์ ๋ฆฌ (0) | 2025.02.17 |
[99ํด๋ฝ] 20์ผ์ฐจ ๋ฌธ์ : ํ์ ์ด๋ฐฅ (0) | 2025.02.15 |
[99ํด๋ฝ] 19์ผ์ฐจ ๋ฌธ์ : ์ ๋๊ฐ ํ (0) | 2025.02.13 |
๋๊ธ