์ „์ฒด ๊ธ€

๋ฌธ์ œ ๋Œ€๋Ÿ‰์˜ ์ขŒํ‘œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์— ์••์ถ•ํ•ด ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์—ฌ๋Ÿฌ ๊ธฐ๋ฒ• ์ค‘ ์ฟผ๋“œ ํŠธ๋ฆฌ(quad tree)๋ž€ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ์–ด์ง„ ๊ณต๊ฐ„์„ ํ•ญ์ƒ 4๊ฐœ๋กœ ๋ถ„ํ• ํ•ด ์žฌ๊ท€์ ์œผ๋กœ ํ‘œํ˜„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฟผ๋“œ ํŠธ๋ฆฌ๋ผ๋Š” ์ด๋ฆ„์ด ๋ถ™์—ˆ๋Š”๋ฐ, ์ด์˜ ์œ ๋ช…ํ•œ ์‚ฌ์šฉ์ฒ˜ ์ค‘ ํ•˜๋‚˜๋Š” ๊ฒ€์€ ์ƒ‰๊ณผ ํฐ ์ƒ‰๋ฐ–์— ์—†๋Š” ํ‘๋ฐฑ ๊ทธ๋ฆผ์„ ์••์ถ•ํ•ด ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฟผ๋“œ ํŠธ๋ฆฌ๋Š” 2N × 2N ํฌ๊ธฐ์˜ ํ‘๋ฐฑ ๊ทธ๋ฆผ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ์ณ ๋ฌธ์ž์—ด๋กœ ์••์ถ•ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ทธ๋ฆผ์˜ ๋ชจ๋“  ํ”ฝ์…€์ด ๊ฒ€์€ ์ƒ‰์ผ ๊ฒฝ์šฐ ์ด ๊ทธ๋ฆผ์˜ ์ฟผ๋“œ ํŠธ๋ฆฌ ์••์ถ• ๊ฒฐ๊ณผ๋Š” ๊ทธ๋ฆผ์˜ ํฌ๊ธฐ์— ๊ด€๊ณ„์—†์ด b๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ทธ๋ฆผ์˜ ๋ชจ๋“  ํ”ฝ์…€์ด ํฐ ์ƒ‰์ผ ๊ฒฝ์šฐ ์ด ๊ทธ๋ฆผ์˜ ์ฟผ๋“œ ํŠธ๋ฆฌ ์••์ถ• ๊ฒฐ๊ณผ๋Š” ๊ทธ๋ฆผ์˜ ํฌ๊ธฐ์— ๊ด€๊ณ„์—†์ด w๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ํ”ฝ์…€์ด ๊ฐ™์€ ์ƒ‰์ด ์•„๋‹ˆ๋ผ๋ฉด, ์ฟผ๋“œ ํŠธ๋ฆฌ๋Š” ์ด ๊ทธ๋ฆผ์„ ๊ฐ€๋กœ ์„ธ๋กœ๋กœ ๊ฐ๊ฐ 2..
๋Œ€ํ•™๊ต 2ํ•™๋…„ ๋•Œ๋Š” ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ stl์„ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ, ๋ง‰์ƒ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€๋ฅผ ํ•˜๋‹ค ๋ณด๋‹ˆ stl์„ ์‚ฌ์šฉํ•˜๋Š” ํšŸ์ˆ˜๊ฐ€ ์ ์–ด์ ธ์„œ ์ด๋ ‡๊ฒŒ๋‚˜๋งˆ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•œ๋‹ค. List๋Š” sequence container๋กœ ์ƒ์ˆ˜์‹œ๊ฐ„ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ ์—ฐ์‚ฐ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹จ์ˆœํžˆ ๋งํ•ด์„œ ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ์˜ stl ๋ฒ„์ „์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค. doubly-linked list๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. ๋ฉค๋ฒ„ ํ•จ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค(์ผ๋ถ€๋งŒ ์„œ์ˆ ) begin iterator์˜ ์‹œ์ž‘๋ถ€๋ถ„์„ returnํ•œ๋‹ค end iterator์˜ ๋๋ถ€๋ถ„์„ returnํ•œ๋‹ค empty list๊ฐ€ ๋น„์—ˆ๋Š”์ง€ ์•Œ๋ ค์คŒ size list์˜ ์›์†Œ ๊ฐœ์ˆ˜ front ์ฒซ๋ฒˆ์งธ ์›์†Œ์— ์ ‘๊ทผํ•œ๋‹ค back ๋งˆ์ง€๋ง‰ ์›์†Œ์— ์ ‘๊ทผํ•œ๋‹ค assign ์ƒˆ๋กญ๊ฒŒ list๋ฅผ ํ• ๋‹นํ•œ๋‹ค(์ž„์˜์˜ ๊ฐ’) push_front..
๋ฌธ์ œ ๋‘ ๊ฐœ์˜ ์ž์—ฐ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜์™€ ์ตœ์†Œ ๊ณต๋ฐฐ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์—๋Š” ๋‘ ๊ฐœ์˜ ์ž์—ฐ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด ๋‘˜์€ 10,000์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋ฉฐ ์‚ฌ์ด์— ํ•œ ์นธ์˜ ๊ณต๋ฐฑ์ด ์ฃผ์–ด์ง„๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์—๋Š” ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ๋‘ ์ˆ˜์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ,๋‘˜์งธ ์ค„์—๋Š” ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ๋‘ ์ˆ˜์˜ ์ตœ์†Œ ๊ณต๋ฐฐ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์˜ˆ์ œ ์ž…๋ ฅ 24 18 ์˜ˆ์ œ ์ถœ๋ ฅ 6 72 ๋ฌธ์ œ ํ’€์ด ์ฒ˜์Œ์—” ๋‹จ์ˆœํžˆ ํ•˜๋‚˜์˜ ์•ฝ์ˆ˜๋ฅผ ๊ตฌํ•ด์„œ ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ „๊ฐœํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ธํ„ฐ๋„ท์„ ์ฐพ์•„๋ณด๋‹ˆ ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ์•„ ๋‚ผ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ...๋”๋ณด๊ธฐ ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•(- ไบ’้™คๆณ•, Euclidean algorithm)์€ 2๊ฐœ์˜ ์ž์—ฐ์ˆ˜ ๋˜๋Š” ์ •์‹(ๆ•ดๅผ)์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ•˜๋‚˜์ด๋‹ค. ํ˜ธ์ œ๋ฒ•์ด๋ž€ ๋ง์€ ๋‘ ์ˆ˜๊ฐ€ ..
๋ฌธ์ œ ๋น„์–ด์žˆ๋Š” ๊ณต์ง‘ํ•ฉ S๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์•„๋ž˜ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. add x: S์— x๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. (1 ≤ x ≤ 20) S์— x๊ฐ€ ์ด๋ฏธ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ์—ฐ์‚ฐ์„ ๋ฌด์‹œํ•œ๋‹ค. remove x: S์—์„œ x๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค. (1 ≤ x ≤ 20) S์— x๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” ์—ฐ์‚ฐ์„ ๋ฌด์‹œํ•œ๋‹ค. check x: S์— x๊ฐ€ ์žˆ์œผ๋ฉด 1์„, ์—†์œผ๋ฉด 0์„ ์ถœ๋ ฅํ•œ๋‹ค. toggle x: S์— x๊ฐ€ ์žˆ์œผ๋ฉด x๋ฅผ ์ œ๊ฑฐํ•˜๊ณ , ์—†์œผ๋ฉด x๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. (1 ≤ x ≤ 20) all: S๋ฅผ {1, 2, ..., 20} ์œผ๋กœ ๋ฐ”๊พผ๋‹ค. empty: S๋ฅผ ๊ณต์ง‘ํ•ฉ์œผ๋กœ ๋ฐ”๊พผ๋‹ค ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ์—ฐ์‚ฐ์˜ ์ˆ˜ M (1 ≤ M ≤ 3,000,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ M๊ฐœ์˜ ์ค„์— ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ์—ฐ์‚ฐ์ด ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ฃผ..
๋ฌธ์ œ ์›”๋“œ์ „์ž๋Š” ๋…ธํŠธ๋ถ์„ ์ œ์กฐํ•˜๊ณ  ํŒ๋งคํ•˜๋Š” ํšŒ์‚ฌ์ด๋‹ค. ๋…ธํŠธ๋ถ ํŒ๋งค ๋Œ€์ˆ˜์— ์ƒ๊ด€์—†์ด ๋งค๋…„ ์ž„๋Œ€๋ฃŒ, ์žฌ์‚ฐ์„ธ, ๋ณดํ—˜๋ฃŒ, ๊ธ‰์—ฌ ๋“ฑ A๋งŒ์›์˜ ๊ณ ์ • ๋น„์šฉ์ด ๋“ค๋ฉฐ, ํ•œ ๋Œ€์˜ ๋…ธํŠธ๋ถ์„ ์ƒ์‚ฐํ•˜๋Š” ๋ฐ์—๋Š” ์žฌ๋ฃŒ๋น„์™€ ์ธ๊ฑด๋น„ ๋“ฑ ์ด B๋งŒ์›์˜ ๊ฐ€๋ณ€ ๋น„์šฉ์ด ๋“ ๋‹ค๊ณ  ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด A=1,000, B=70์ด๋ผ๊ณ  ํ•˜์ž. ์ด ๊ฒฝ์šฐ ๋…ธํŠธ๋ถ์„ ํ•œ ๋Œ€ ์ƒ์‚ฐํ•˜๋Š” ๋ฐ๋Š” ์ด 1,070๋งŒ์›์ด ๋“ค๋ฉฐ, ์—ด ๋Œ€ ์ƒ์‚ฐํ•˜๋Š” ๋ฐ๋Š” ์ด 1,700๋งŒ์›์ด ๋“ ๋‹ค. ๋…ธํŠธ๋ถ ๊ฐ€๊ฒฉ์ด C๋งŒ์›์œผ๋กœ ์ฑ…์ •๋˜์—ˆ๋‹ค๊ณ  ํ•œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ƒ์‚ฐ ๋Œ€์ˆ˜๋ฅผ ๋Š˜๋ ค ๊ฐ€๋‹ค ๋ณด๋ฉด ์–ด๋Š ์ˆœ๊ฐ„ ์ด ์ˆ˜์ž…(ํŒ๋งค๋น„์šฉ)์ด ์ด ๋น„์šฉ(=๊ณ ์ •๋น„์šฉ+๊ฐ€๋ณ€๋น„์šฉ)๋ณด๋‹ค ๋งŽ์•„์ง€๊ฒŒ ๋œ๋‹ค. ์ตœ์ดˆ๋กœ ์ด ์ˆ˜์ž…์ด ์ด ๋น„์šฉ๋ณด๋‹ค ๋งŽ์•„์ ธ ์ด์ต์ด ๋ฐœ์ƒํ•˜๋Š” ์ง€์ ์„ ์†์ต๋ถ„๊ธฐ์ (BREAK-EVEN POINT)์ด๋ผ๊ณ  ํ•œ๋‹ค. A, B, C๊ฐ€ ์ฃผ์–ด์กŒ..
YURI๐Ÿ•๐Ÿ“๐Ÿถ
๐Ÿ•