๋ชฉ๋กํˆฌ ํฌ์ธํ„ฐ (2)

Development

[python] ํˆฌ ํฌ์ธํ„ฐ(Two Pointers) ์•Œ๊ณ ๋ฆฌ์ฆ˜

์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋ฅผ ํ’€๋‹ค๋ณด๋ฉด ํˆฌ ํฌ์ธํ„ฐ๋กœ ํ’€์–ด์•ผํ•˜๋Š” ๋ฌธ์ œ๋“ค์„ ์ž์ฃผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ํˆฌ ํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด ์•Œ์•„๋ด…์‹œ๋‹ค. [ํˆฌ ํฌ์ธํ„ฐ(Two Pointers) ์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ฆฌ์ŠคํŠธ์— ์ˆœ์ฐจ์ ์œผ๋กœ ์ ‘๊ทผํ•ด์•ผ ํ•  ๋•Œ ๋‘๊ฐœ์˜ ์ ์˜ ์œ„์น˜๋ฅผ ๊ธฐ๋กํ•˜๋ฉด์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฆฌ์ŠคํŠธ์— ๋‹ด๊ธด ๋ฐ์ดํ„ฐ์— ์ˆœ์ฐจ์ ์œผ๋กœ ์ ‘๊ทผํ•ด์•ผ ํ•  ๋•Œ๋Š” ์‹œ์ž‘์ ๊ณผ ๋์  2๊ฐœ์˜ ์ ์œผ๋กœ ์ ‘๊ทผํ•  ๋ฐ์ดํ„ฐ์˜ ๋ฒ”์œ„๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์œ„ ๊ทธ๋ฆผ๊ณผ๊ฐ™์ด ๋‘ ๊ฐœ์˜ ํฌ์ธํ„ฐ(์ )์˜ ์œ„์น˜๋ฅผ ๊ธฐ๋กํ•˜๋ฉด์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค. [์‹œ๊ฐ„๋ณต์žก๋„] O(N) ๋งค ๋ฃจํ”„๋งˆ๋‹ค ํ•ญ์ƒ ๋‘ ํฌ์ธํ„ฐ ์ค‘ ํ•˜๋‚˜๋Š” 1์”ฉ ์ฆ๊ฐ€ํ•˜๊ณ  ๊ฐ ํฌ์ธํ„ฐ๊ฐ€ n๋ฒˆ ๋ˆ„์  ์ฆ๊ฐ€ํ•ด์•ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋๋‚œ๋‹ค. ๊ฐ๊ฐ ๋ฐฐ์—ด ๋์— ๋‹ค๋‹ค๋ฅด๋Š”๋ฐ O(N)์ด๋ผ ๋‘˜์„ ํ•ฉํ•ด๋„ ์—ฌ์ „ํžˆ O(N)์ด๋‹ค. [์˜ˆ์ œ] ๋ฐฑ์ค€ 3237 ๋‘ ์ˆ˜์˜ ํ•ฉ์ด ํˆฌ ํฌ์ธํ„ฐ์˜ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค. ht..

Languages/Python 2022. 1. 14. 01:11
[Python] ๋ฐฑ์ค€ #3273 - ๋‘ ์ˆ˜์˜ ํ•ฉ

๋ฌธ์ œ https://www.acmicpc.net/problem/3273 3273๋ฒˆ: ๋‘ ์ˆ˜์˜ ํ•ฉ n๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ์–‘์˜ ์ •์ˆ˜ a1, a2, ..., an์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์ˆ˜์—ด์ด ์žˆ๋‹ค. ai์˜ ๊ฐ’์€ 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 1000000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ์ž์—ฐ์ˆ˜ x๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ai + aj = x (1 โ‰ค i < j โ‰ค n)์„ ๋งŒ์กฑํ•˜๋Š” www.acmicpc.net ํ’€์ด ๋ฌธ์ œ ํ‘ธ๋Š” ๋ฐฉ์‹์€ ๊ฐ™์ง€๋งŒ ๋‹ค๋ฅธ์‚ฌ๋žŒ ์ฝ”๋“œ๊ฐ€ ๋” ๊น”๋”ํ•˜์—ฌ ๊ฐ€์ ธ์™”๋‹ค. ์ด ๋ฌธ์ œ๋Š” start์™€ end๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํˆฌ ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค. ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ์„ ํ•ด์ฃผ๊ณ  ์–‘ ๋์—์„œ ํ•ฉ์„ ๊ตฌํ•ด๊ฐ€๋ฉด์„œ ๋‹ต์„ ์ฐพ๋Š” ๋ฐฉ์‹์ด๋‹ค. start๋ฅผ ์ฒซ ์ธ๋ฑ์Šค, end๋ฅผ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค๋กœ ์ง€์ •ํ•˜๊ธฐ์œ„ํ•ด start = 0, end = n-1์„ ํ•ด์ค€๋‹ค. start๋ณด๋‹ค ..