[์ค์ํํธ ์๊ณ ๋ฆฌ์ฆ] ๊ธฐ์ง๊ตญ ์ค์น
๋ฌธ์
https://programmers.co.kr/learn/courses/30/lessons/12979#
๋ฌธ์ ์ค๋ช
N๊ฐ์ ์ํํธ๊ฐ ์ผ๋ ฌ๋ก ์ญ ๋์ด์ ์์ต๋๋ค. ์ด ์ค์์ ์ผ๋ถ ์ํํธ ์ฅ์์๋ 4g ๊ธฐ์ง๊ตญ์ด ์ค์น๋์ด ์์ต๋๋ค. ๊ธฐ์ ์ด ๋ฐ์ ํด 5g ์์๊ฐ ๋์์ ธ 4g ๊ธฐ์ง๊ตญ์ 5g ๊ธฐ์ง๊ตญ์ผ๋ก ๋ฐ๊พธ๋ ค ํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ 5g ๊ธฐ์ง๊ตญ์ 4g ๊ธฐ์ง๊ตญ๋ณด๋ค ์ ๋ฌ ๋ฒ์๊ฐ ์ข์, 4g ๊ธฐ์ง๊ตญ์ 5g ๊ธฐ์ง๊ตญ์ผ๋ก ๋ฐ๊พธ๋ฉด ์ด๋ค ์ํํธ์๋ ์ ํ๊ฐ ๋๋ฌํ์ง ์์ต๋๋ค.
์๋ฅผ ๋ค์ด 11๊ฐ์ ์ํํธ๊ฐ ์ญ ๋์ด์ ์๊ณ , [4, 11] ๋ฒ์งธ ์ํํธ ์ฅ์์๋ 4g ๊ธฐ์ง๊ตญ์ด ์ค์น๋์ด ์์ต๋๋ค. ๋ง์ฝ ์ด 4g ๊ธฐ์ง๊ตญ์ด ์ ํ ๋๋ฌ ๊ฑฐ๋ฆฌ๊ฐ 1์ธ 5g ๊ธฐ์ง๊ตญ์ผ๋ก ๋ฐ๋ ๊ฒฝ์ฐ ๋ชจ๋ ์ํํธ์ ์ ํ๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค. (์ ํ์ ๋๋ฌ ๊ฑฐ๋ฆฌ๊ฐ W์ผ ๋, ๊ธฐ์ง๊ตญ์ด ์ค์น๋ ์ํํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ํ๋ฅผ ์์ชฝ์ผ๋ก W๋งํผ ์ ๋ฌํ ์ ์์ต๋๋ค.)
- ์ด๊ธฐ์, 1, 2, 6, 7, 8, 9๋ฒ์งธ ์ํํธ์๋ ์ ํ๊ฐ ์ ๋ฌ๋์ง ์์ต๋๋ค.
- 1, 7, 9๋ฒ์งธ ์ํํธ ์ฅ์์ ๊ธฐ์ง๊ตญ์ ์ค์นํ ๊ฒฝ์ฐ, ๋ชจ๋ ์ํํธ์ ์ ํ๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค.
- 3๊ฐ์ ์ํํธ๋ณด๋ค ๋ ๋ง์ ์ํํธ ์ฅ์์ ๊ธฐ์ง๊ตญ์ ์ค์นํ ๊ฒฝ์ฐ์๋ ๋ชจ๋ ์ํํธ์ ์ ํ๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค.
์ด๋, ์ฐ๋ฆฌ๋ ๊ธฐ์ง๊ตญ์ ์ต์๋ก ์ค์นํ๋ฉด์ ๋ชจ๋ ์ํํธ์ ์ ํ๋ฅผ ์ ๋ฌํ๋ ค๊ณ ํฉ๋๋ค. ์์ ์์์์ ์ต์ 3๊ฐ์ ์ํํธ ์ฅ์์ ๊ธฐ์ง๊ตญ์ ์ค์นํด์ผ ๋ชจ๋ ์ํํธ์ ์ ํ๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค.
์ํํธ์ ๊ฐ์ N, ํ์ฌ ๊ธฐ์ง๊ตญ์ด ์ค์น๋ ์ํํธ์ ๋ฒํธ๊ฐ ๋ด๊ธด 1์ฐจ์ ๋ฐฐ์ด stations, ์ ํ์ ๋๋ฌ ๊ฑฐ๋ฆฌ W๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ชจ๋ ์ํํธ์ ์ ํ๋ฅผ ์ ๋ฌํ๊ธฐ ์ํด ์ฆ์คํด์ผ ํ ๊ธฐ์ง๊ตญ ๊ฐ์์ ์ต์๊ฐ์ ๋ฆฌํดํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์
์ ํ์ฌํญ
- N: 200,000,000 ์ดํ์ ์์ฐ์
- stations์ ํฌ๊ธฐ: 10,000 ์ดํ์ ์์ฐ์
- stations๋ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋์ด ์๊ณ , ๋ฐฐ์ด์ ๋ด๊ธด ์๋ N๋ณด๋ค ๊ฐ๊ฑฐ๋ ์์ ์์ฐ์์ ๋๋ค.
- W: 10,000 ์ดํ์ ์์ฐ์
ํ์ด
์ ํ ์ฌํญ์ ๋ณด๋ฉด ์ด ๋ฌธ์ ๋ O(N)์ผ๋ก๋ ํ๋ฉด ์๋๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ๋ฌด์กฐ๊ฑด O(1)์ด๋ O(nlogn)์ผ๋ก ํ์ด์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค. ์ฒ์์๋ ๋๋ฌด ์ ํ์ ์ธ ์ด๋ถํ์ ์คํ์ผ์ ๋ฌธ์ ์ด๊ธธ๋, ์ด๋ถํ์์ผ๋ก ํ์ด๋ฅผ ํด๋ณด๋ ค๊ณ ํ๋๋ฐ ๋ฏธ๋ฆฌ ์ค์น๋์ด์๋ ๊ธฐ์ง๊ตญ์ด ์๊ธฐ ๋๋ฌธ์ ๊ธฐ์ง๊ตญ์ ์ค์นํด๋ณด๋ ์ถ๊ฐ์ ์ธ ์ฐ์ฐ์ด ์๊ตฌ๋๋ฉด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์์ต๋๋ค.
๊ทธ๋์ ๋๋๋๋ค๊ฐ ์ง๋ฌธํ๊ธฐ ํญ์ ํตํด ํํธ๋ฅผ ์ป์ด ๊ทธ๋ฆฌ๋ํ ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐํ๊ฒ ๋์์ต๋๋ค.
๊ธฐ์ง๊ตญ์ ์ ํ๊ฑฐ๋ฆฌ w๋ฅผ ์ด์ฉํ๋ฉด ๊ฐ ์์น์ ์๋ ๊ธฐ์ง๊ตญ์ด ์ ํ๋ฅผ ๋ณด๋ผ ์ ์๋ ์ต๋ ๋ฒ์๊ฐ 2 * w + 1 ์ด๋ผ๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ์ฆ, ์ต์ํ ์ ์ ๊ฐ์์ ๊ธฐ์ง๊ตญ์ ์ค์นํ๊ธฐ ์ํด์๋ 2 * w + 1 ๋งํผ์ ๋ฒ์๋ฅผ ๋๊ณ ๊ธฐ์ง๊ตญ์ด ์ค์น๋์ด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
๋ฐ๋ผ์ ํ์ฌ ์ฃผ์ด์ง ๊ธฐ์ง๊ตญ์ ์์น๋ฅผ ํตํด ์ ํ๊ฐ ๋ฟ์ง ์๋ ์ํํธ ๊ตฌ๊ฐ์ ์ ๋ณํ๊ณ ํด๋น ๊ตฌ๊ฐ ์์ ์ค์นํ ์ ์๋ ์ต์ ๊ธฐ์ง๊ตญ ๊ฐ์๋ฅผ ๊ตฌํด์ฃผ๋ฉด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค. ์์์์น๋ฅผ ์ฒซ๋ฒ์งธ ์ํํธ๋ก ์ก๊ณ ์ด๋ฏธ ์ค์น๋ ๊ธฐ์ง๊ตญ์ ํ๋์ฉ ์ฒดํฌํ๋ฉด์ ๊ตฌ๊ฐ์ ์ค์ ํ๊ณ , ๋ง์ฝ ๋ง์ง๋ง ๊ธฐ์ง๊ตญ์ ๋ฒ์๊ฐ ๋ง์ง๋ง ์ํํธ๊น์ง ๋ฟ์ง ์๋๋ค๋ฉด, ๋ง์ง๋ง ๊ธฐ์ง๊ตญ์ ๋ฒ์์์๋ถํฐ ๋ง์ง๋ง ์ํํธ๊น์ง์ ๊ตฌ๊ฐ์ ๋ํ ๊ณ์ฐ๊น์ง ํด์ฃผ๋ฉด ๋ฉ๋๋ค.
์ฝ๋
'๐๐ปโโ๏ธ ํผ-์์ค > ๐ฃ ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ค์ํํธ ์๊ณ ๋ฆฌ์ฆ] ๊ฒฝ์ฃผ๋ก ๊ฑด์ค (0) | 2021.10.24 |
---|---|
[์ค์ํํธ ์๊ณ ๋ฆฌ์ฆ] ํ๋ก๊ทธ๋๋จธ์ค: ํ ํธ์ง (0) | 2021.10.10 |
[์ค์ํํธ ์๊ณ ๋ฆฌ์ฆ] ํ๋ก๊ทธ๋๋จธ์ค: ์ฌ ์ฐ๊ฒฐํ๊ธฐ (0) | 2021.10.03 |
[์ค์ํํธ ์๊ณ ๋ฆฌ์ฆ] ํ๋ก๊ทธ๋๋จธ์ค: ์ฌํ๊ฒฝ๋ก (0) | 2021.10.03 |
[์ค์ํํธ ์๊ณ ๋ฆฌ์ฆ] ํ๋ก๊ทธ๋๋จธ์ค: ๋ฒ ์คํธ์จ๋ฒ (0) | 2021.10.03 |
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote