๋ฌธ์
10,000 ์ดํ์ ์์ฐ์๋ก ์ด๋ฃจ์ด์ง ๊ธธ์ด N์ง๋ฆฌ ์์ด์ด ์ฃผ์ด์ง๋ค. ์ด ์์ด์์ ์ฐ์๋ ์๋ค์ ๋ถ๋ถํฉ ์ค์ ๊ทธ ํฉ์ด S ์ด์์ด ๋๋ ๊ฒ ์ค, ๊ฐ์ฅ ์งง์ ๊ฒ์ ๊ธธ์ด๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ N (10 ≤ N < 100,000)๊ณผ S (0 < S ≤ 100,000,000)๊ฐ ์ฃผ์ด์ง๋ค. ๋์งธ ์ค์๋ ์์ด์ด ์ฃผ์ด์ง๋ค. ์์ด์ ๊ฐ ์์๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋์ด์ ธ ์์ผ๋ฉฐ, 10,000์ดํ์ ์์ฐ์์ด๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ๊ตฌํ๊ณ ์ ํ๋ ์ต์์ ๊ธธ์ด๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ผ ๊ทธ๋ฌํ ํฉ์ ๋ง๋๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๋ค๋ฉด 0์ ์ถ๋ ฅํ๋ฉด ๋๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
์์ 2๋ฌธ์ ์ ๋ค๋ฅด๊ฒ ์ ๋ ฌ์ ํ ํ์๊ฐ ์๋ ๋ฌธ์ ์ด๋ค. ์ฃผ์ด์ง ๋ฐฐ์ด ์์ฒด์์์ ๊ฐ์ฅ ์์ ๊ธธ์ด์ ๋ถ๋ถ ํฉ์ ์ฐพ์์ผํ๊ธฐ ๋๋ฌธ์ด๋ค. ์๊ณ ๋ฆฌ์ฆ์ ์๋์ ๊ฐ๋ค.
1. left, right๋ฅผ 0์ผ๋ก ์ค์ ํ๊ณ right++๋ฅผ ํ๋ฉด์ ์์๋ฅผ ํ๋์ฉ ๋ํด์ค๋ค.
2. ๋ง์ฝ ๋ถ๋ถ ํฉ์ด ์ฃผ์ด์ง s๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ ๊ฒฝ์ฐ left์ ์์๋ฅผ ๋ถ๋ถ ํฉ์์ ๋นผ์ค๋ค.
3. right == n
์ธ ๊ฒฝ์ฐ ๋ฐ๋ณต๋ฌธ์ ์ข
๋ฃํ๋ค.
4. n == 100000
์ธ ๊ฒฝ์ฐ ๋ถ๋ถ ํฉ์ ์ฐพ์ง ๋ชปํ์ผ๋ฏ๋ก 0์ ์ถ๋ ฅํ๊ณ ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ์ต์ ๊ธธ์ด๋ฅผ ์ถ๋ ฅํ๋ค.
์ค์ํ ์ ์ if๋ฌธ์ ์ฐ์ ์์
๋ผ๊ณ ์๊ฐํ๋ค. 4๋ฒ์ ๋์ ๋์ ์ฑ๊ณตํ๋ค. ์ข ๋ ๋ถ๋ฐํด์ผ๊ฒ ๋ค.
ํต๊ณผ
'โ๏ธ ์ฝํ ์ค๋น > Two Pointer' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํฌํฌ์ธํฐ / Kotlin] BOJ 1644 - ์์์ ์ฐ์ํฉ (0) | 2021.12.27 |
---|---|
[ํฌํฌ์ธํฐ / Kotlin] BOJ 2470 - ๋ ์ฉ์ก (0) | 2021.12.25 |
[ํฌํฌ์ธํฐ / Kotlin] BOJ 3273 - ๋ ์์ ํฉ (0) | 2021.12.25 |