๐Ÿค–Algorithm/Programmers ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ

ํ•ด๋‹น ๊ธ€ 62๊ฑด

๐Ÿ”—๋ฌธ์ œ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ๐Ÿ‘จ‍๐Ÿ’ปํ’€์ด ๊ณผ์ • 3 X 3 ๋งต์—์„œ ๋จผ์ € ๊ฐ€๋กœ ํ˜น์€ ์„ธ๋กœ ํ˜น์€ ๋Œ€๊ฐ์„  3๊ฐœ์˜ ๋ผ์ธ์„ ๋งŒ๋“œ๋Š” ์‚ฌ๋žŒ์ด ์ด๊ธฐ๋Š” ๊ฒŒ์ž„์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ์ด๊ฒผ๋Š”๊ฐ€ ์กŒ๋Š”๊ฐ€๋ฅผ ๋ณด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ฒŒ์ž„์„ ์ง„ํ–‰ํ–ˆ๋Š”๊ฐ€๋ฅผ ๋ณด๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‚ฌํ•ญ๋“ค์„ ์ฒดํฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฒˆ๊ฐˆ์•„ ๊ฐ€๋ฉด์„œ ์ง„ํ–‰ํ•ด์•ผ ํ•˜๋Š”๋ฐ, ์–ด๋Š ํ•œ ์ชฝ์ด 2๋ฒˆ ์—ฐ์† ์ง„ํ–‰ํ•œ ๊ฒฝ์šฐ ( | 'O'์˜ ๊ฐœ์ˆ˜ - 'X'์˜ ๊ฐœ์ˆ˜| > 1) ์„ ๊ณต์ด ๋จผ์ € ๋†”์•ผ ํ•˜๋Š”๋ฐ, ํ›„๊ณต์ด ๋จผ์ € ๋†“์€ ๊ฒฝ์šฐ ( 'O'์˜ ๊ฐœ์ˆ˜ < 'X'์˜ ๊ฐœ์ˆ˜ ) ๋‘˜ ๋‹ค ์ด๊ฒผ๋‹ค๊ณ  ํŒ์ •ํ•  ๊ฒฝ์šฐ ( 'O' 3๊ฐœ..

๐Ÿ”—๋ฌธ์ œ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ๐Ÿ‘จ‍๐Ÿ’ปํ’€์ด ๊ณผ์ • n๋ฒˆ์งธ ๋ธ”๋ก์— ๋†“์—ฌ์งˆ ์ˆซ์ž๋Š” n์ด ์†Œ์ˆ˜์ผ ๊ฒฝ์šฐ์—” 1, ์•„๋‹ ๊ฒฝ์šฐ์—๋Š” 10,000,000๋ณด๋‹ค ์ž‘์€ ์ œ์ผ ํฐ ์•ฝ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ œ๊ณฑ๊ทผ ๋ฐฉ์‹์„ ์ด์šฉํ•˜์—ฌ ์•ฝ์ˆ˜์™€ ์†Œ์ˆ˜๋ฅผ ์ฐพ๋Š” ๋ฐ์— ์‹œ๊ฐ„์„ ํšจ์œจ์ ์œผ๋กœ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์ ๊ฒ€ํ•˜๋ ค๋Š” ์ˆซ์ž๋ฅผ i๋ผ๊ณ  ํ•œ๋‹ค๋ฉด, n / i \( \leq 10,000,000 \) ์ด๋ผ๋ฉด, n / i๊ฐ€ ๊ฐ€์žฅ ํฐ ์•ฝ์ˆ˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ํฐ ์•ฝ์ˆ˜๋ฅผ ์ฐพ์•˜์œผ๋ฏ€๋กœ ๋ฐ˜๋ณต๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ์•„๋‹ˆ๋ผ๋ฉด, i๋ฅผ ์„ ํƒํ•œ ํ›„์— ๋‹ค์Œ ๋ฃจํ”„๋กœ ๋„˜์–ด๊ฐ€๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. n์ด 1์ธ ๊ฒฝ์šฐ์—๋Š” 0์ด ์ ํžŒ ..

๐Ÿ”—๋ฌธ์ œ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ๐Ÿ‘จ‍๐Ÿ’ปํ’€์ด ๊ณผ์ • ์›์€ ์ƒํ•˜์ขŒ์šฐ ๋Œ€์นญ์ด๋ฏ€๋กœ, 4๊ฐœ์˜ ์‚ฌ๋ถ„๋ฉด ์ค‘ ํ•˜๋‚˜์— ์†ํ•œ ์ ๋“ค ๊ฐœ์ˆ˜๋งŒ ๊ตฌํ•ด์„œ 4๋ฐฐ ํ›„, ๊ฒน์น˜๋Š” ์  ๊ฐœ์ˆ˜๋“ค๋งŒ ๋นผ์ฃผ๋ฉด ๋˜๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ €๋Š” 2์‚ฌ๋ถ„๋ฉด์„ ์„ ํƒํ•˜์—ฌ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ๊ณผ์ •์€ ์ œ 2์‚ฌ๋ถ„๋ฉด ๋‚ด์— ์ ๋“ค ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค๋Š” ๊ฐ€์ • ํ•˜์— ์ง„ํ–‰ํ•œ ๊ณผ์ •๋“ค์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ •์ˆ˜ ๋ถ€๋ถ„๋งŒ ํƒํ•ด์•ผ ํ•˜๋ฏ€๋กœ, ํฐ ์›์˜ y๊ฐ’์€ ๋‚ด๋ฆผ, ์ž‘์€ ์›์˜ y๊ฐ’์€ ์˜ฌ๋ฆผ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. [a, b] ๊ตฌ๊ฐ„์˜ ์ž์—ฐ์ˆ˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๊ณต์‹์€ b - a + 1์ž…๋‹ˆ๋‹ค. (a ≤ b) ํฐ ์›์„ r1, ์ž‘์€ ์›์„..

๐Ÿ”—๋ฌธ์ œ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ๐Ÿ‘จ‍๐Ÿ’ปํ’€์ด ๊ณผ์ • ๋‹ค์Œ ๋ฌธ์ œ ์ง€๋ฌธ ๋ถ€๋ถ„์ด ๋ฌด์Šจ ๋ง์ธ์ง€ ํ—ท๊ฐˆ๋ ค, ์ดํ•ดํ•˜๋Š” ๋ฐ์— ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค. "๋‹จ, ์šฐ๋ฐ•์ˆ˜์—ด ๊ทธ๋ž˜ํ”„์˜ ๊ฐ€๋กœ์ถ• ๊ธธ์ด๋ฅผ ๋ฏธ๋ฆฌ ์•Œ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌ๊ฐ„์˜ ์‹œ์ž‘์€ ์Œ์ด ์•„๋‹Œ ์ •์ˆ˜, ๊ตฌ๊ฐ„์˜ ๋์€ ์–‘์ด ์•„๋‹Œ ์ •์ˆ˜๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐ๊ฐ ๊บพ์€์„  ๊ทธ๋ž˜ํ”„๊ฐ€ ์‹œ์ž‘ํ•˜๋Š” ์ ๊ณผ ๋๋‚˜๋Š” ์ ์˜ x์ขŒํ‘œ์— ๋Œ€ํ•œ ์ƒ๋Œ€์ ์ธ ์˜คํ”„์…‹์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค." ๊ตฌํ•œ ์šฐ๋ฐ•์ˆ˜์—ด์˜ ๋งˆ์ง€๋ง‰ ์ขŒํ‘œ(์œ„ ์˜ˆ์ œ๋กœ ๋ณด๋ฉด (5, 1))์˜ x๊ฐ’์„ LX๋ผ๊ณ  ํ•œ๋‹ค๋ฉด, ์ฃผ์–ด์ง„ ๊ตฌ๊ฐ„ [a, b]๋Š” [0 + a, LX + b]๋ฅผ ์˜๋ฏธํ•˜๋Š” ๊ฑฐ์˜€์Šต๋‹ˆ..

๐Ÿ”—๋ฌธ์ œ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ๐Ÿ‘จ‍๐Ÿ’ปํ’€์ด ๊ณผ์ • ์ฒ˜์Œ์—๋Š” DP๋กœ ๋ฌด์ ๊ถŒ ์Šคํ‚ฌ์„ ์‚ฌ์šฉํ–ˆ์„ ๊ฒฝ์šฐ์™€ ์•ˆ ํ–ˆ์„ ๊ฒฝ์šฐ์˜ ๋ฐ์ดํ„ฐ๋“ค์„ ์ €์žฅํ•˜์—ฌ ํ’€์–ด๋‚˜๊ฐ€๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ, ๋ฌด์ ๊ถŒ ์Šคํ‚ฌ ๊ฐœ์ˆ˜(k)์™€ ๋ณ‘์‚ฌ๋“ค ์ˆ˜(n)๊ฐ€ ๊ฐ™์€ ๊ฒŒ ์•„๋‹ˆ๋ผ์„œ ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜๊ฐ€ ์—†๋”๋ผ๊ตฌ์š”. ๊ทธ๋ž˜์„œ ์Šคํƒ(Stack)์„ ์ด์šฉํ•ด์„œ ํฐ ์ˆซ์ž๋ฅผ ๋ฌด์ ๊ถŒ ์Šคํ‚ฌ๋กœ ์Šคํ‚ตํ•˜๋Š” ํ˜•์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์—ˆ๋Š”๋ฐ, ์ด๊ฒƒ ์—ญ์‹œ ์ตœ์ ์ด๋ผ๋Š” ๋ณด์žฅ์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐฉ๋ฒ•์€ ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue, heap)์˜€๋„ค์š”. ์™œ ์ด ์ƒ๊ฐ์„ ๋ชป ํ–ˆ์„๊นŒ์š”. ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ๋ณ‘์‚ฌ ์ˆ˜(n)๊ฐ€ ํ˜„์žฌ ๋ผ์šด๋“œ..