[c++] BOJ 14502 :: ์—ฐ๊ตฌ์†Œ
Algorithm ๋ฌธ์ œ/BOJ 2021. 4. 22. 22:32

๋‚œ์ด๋„ : ๊ณจ๋“œ 5 ๊ฑธ๋ฆฐ ์‹œ๊ฐ„ : 1์‹œ๊ฐ„ ๋ฌธ์ œ ์—ฐ๊ตฌ์†Œ ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ ์„œ๊ธฐ 2012๋…„! ๋“œ๋””์–ด 2๋…„๊ฐ„ ์ˆ˜๋งŽ์€ ๊ตญ๋ฏผ๋“ค์„ ๊ธฐ๋‹ค๋ฆฌ๊ฒŒ ํ•œ ๊ฒŒ์ž„ ACM Craft (Association of Construction Manager Craft)๊ฐ€ ๋ฐœ๋งค๋˜์—ˆ๋‹ค. ์ด ๊ฒŒ์ž„์€ ์ง€๊ธˆ๊นŒ์ง€ ๋‚˜์˜จ ๊ฒŒ์ž„๋“ค๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ACMํฌ๋ž˜ํ”„ํŠธ๋Š” ๋‹ค์ด๋‚˜๋ฏนํ•œ ๊ฒŒ์ž„ ์ง„ํ–‰์„ ์œ„ํ•ด ๊ฑด๋ฌผ์„ ์ง“๋Š” ์ˆœ์„œ๊ฐ€ ์ •ํ•ด์ ธ ์žˆ์ง€ ์•Š๋‹ค. ์ฆ‰, ์ฒซ ๋ฒˆ์งธ ๊ฒŒ์ž„๊ณผ ๋‘ ๋ฒˆ์งธ ๊ฒŒ์ž„์ด ๊ฑด๋ฌผ์„ ์ง“๋Š” ์ˆœ์„œ๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜๋„ ์žˆ๋‹ค. ๋งค ๊ฒŒ์ž„์‹œ์ž‘ ์‹œ ๊ฑด๋ฌผ์„ ์ง“๋Š” ์ˆœ์„œ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋˜ํ•œ ๋ชจ๋“  ๊ฑด๋ฌผ์€ ๊ฐ๊ฐ ๊ฑด์„ค์„ ์‹œ์ž‘ํ•˜์—ฌ ์™„์„ฑ์ด ๋  ๋•Œ๊นŒ์ง€ Delay๊ฐ€ ์กด๋ฌธ์ œ ์ธ์ฒด์— ์น˜๋ช…์ ์ธ ๋ฐ”์ด๋Ÿฌ์Šค๋ฅผ ์—ฐ๊ตฌํ•˜๋˜ ์—ฐ๊ตฌ์†Œ์—์„œ ๋ฐ”์ด๋Ÿฌ์Šค๊ฐ€ ์œ ์ถœ๋˜์—ˆ๋‹ค. ๋‹คํ–‰ํžˆ ๋ฐ”์ด๋Ÿฌ์Šค๋Š” ์•„์ง ํผ์ง€์ง€ ์•Š์•˜๊ณ , ๋ฐ”์ด๋Ÿฌ์Šค์˜ ํ™•์‚ฐ์„ ๋ง‰๊ธฐ ์œ„ํ•ด์„œ ์—ฐ..

[์นด์นด์˜ค ๋ธ”๋ผ์ธ๋“œ 2021] ๋ฉ”๋‰ด ๋ฆฌ๋‰ด์–ผ :: c++ ์ฝ”๋“œ, ๋ฌธ์ œ ํ•ด์„, ํ•„์š” ํ•จ์ˆ˜
Algorithm ๋ฌธ์ œ/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2021. 2. 13. 20:55

๋ฉ”๋‰ด ๋ฆฌ๋‰ด์–ผ ๋‚œ์ด๋„ : โ˜…โ˜…โ˜†โ˜†โ˜† ๊ฑธ๋ฆฐ ์‹œ๊ฐ„ : 50๋ถ„ ๋ฌธ์ œ ๋ฉ”๋‰ด ๋ฆฌ๋‰ด์–ผ ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ ๋ฌธ์ œ ์„ค๋ช… ๋ ˆ์Šคํ† ๋ž‘์„ ์šด์˜ํ•˜๋˜ ์Šค์นดํ”ผ๋Š” ์ฝ”๋กœ๋‚˜19๋กœ ์ธํ•œ ๋ถˆ๊ฒฝ๊ธฐ๋ฅผ ๊ทน๋ณตํ•˜๊ณ ์ž ๋ฉ”๋‰ด๋ฅผ ์ƒˆ๋กœ ๊ตฌ์„ฑํ•˜๋ ค๊ณ  ๊ณ ๋ฏผํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด์—๋Š” ๋‹จํ’ˆ์œผ๋กœ๋งŒ ์ œ๊ณตํ•˜๋˜ ๋ฉ”๋‰ด๋ฅผ ์กฐํ•ฉํ•ด์„œ ์ฝ”์Šค์š”๋ฆฌ ํ˜•ํƒœ๋กœ ์žฌ๊ตฌ์„ฑํ•ด์„œ ์ƒˆ๋กœ์šด ๋ฉ”๋‰ด๋ฅผ ์ œ๊ณตํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ๋‹จํ’ˆ๋ฉ”๋‰ด๋“ค์„ ์กฐํ•ฉํ•ด์„œ ์ฝ”์Šค์š”๋ฆฌ ๋ฉ”๋‰ด๋กœ ๊ตฌ์„ฑํ•˜๋ฉด ์ข‹์„ ์ง€ ๊ณ ๋ฏผํ•˜๋˜ ์Šค์นดํ”ผ๋Š” ์ด์ „์— ๊ฐ ์†๋‹˜๋“ค์ด ์ฃผ๋ฌธํ•  ๋•Œ ๊ฐ€์žฅ ๋งŽ์ด ํ•จ๊ป˜ ์ฃผ๋ฌธํ•œ ๋‹จํ’ˆ๋ฉ”๋‰ด๋“ค์„ ์ฝ”์Šค์š”๋ฆฌ ๋ฉ”๋‰ด๋กœ ๊ตฌ์„ฑํ•˜๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹จ, ์ฝ”์Šค์š”๋ฆฌ ๋ฉ”๋‰ด๋Š” ์ตœ์†Œ 2๊ฐ€์ง€ ์ด์ƒ์˜ ๋‹จํ’ˆ๋ฉ”๋‰ด๋กœ ๊ตฌ์„ฑํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ์ตœ์†Œ 2๋ช… ์ด์ƒ์˜ ์†๋‹˜์œผ๋กœ๋ถ€ํ„ฐ ์ฃผ๋ฌธ๋œ ๋‹จํ’ˆ๋ฉ”๋‰ด ์กฐํ•ฉ์— ๋Œ€ํ•ด์„œ๋งŒ ์ฝ”์Šค์š”๋ฆฌ ๋ฉ”๋‰ด ํ›„๋ณด์— ํฌํ•จํ•˜๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์†๋‹˜ 6๋ช…์ด ์ฃผ..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํ›„๋ณดํ‚ค :: C++, SQL, ์ฝ”๋“œ, ํ’€์ด (์ฃผ์˜ํ•  ์ !)
Algorithm ๋ฌธ์ œ/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2021. 1. 3. 10:21

ํ›„๋ณดํ‚ค ๋ฌธ์ œ ๋ฌธ์ œ ์„ค๋ช… ํ›„๋ณดํ‚ค ํ”„๋ Œ์ฆˆ๋Œ€ํ•™๊ต ์ปดํ“จํ„ฐ๊ณตํ•™๊ณผ ์กฐ๊ต์ธ ์ œ์ด์ง€๋Š” ๋„ค์˜ค ํ•™๊ณผ์žฅ๋‹˜์˜ ์ง€์‹œ๋กœ, ํ•™์ƒ๋“ค์˜ ์ธ์ ์‚ฌํ•ญ์„ ์ •๋ฆฌํ•˜๋Š” ์—…๋ฌด๋ฅผ ๋‹ด๋‹นํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ์˜ ํ•™๋ถ€ ์‹œ์ ˆ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝํ—˜์„ ๋˜์‚ด๋ ค, ๋ชจ๋“  ์ธ์ ์‚ฌํ•ญ์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋„ฃ๊ธฐ๋กœ ํ•˜์˜€๊ณ , ์ด๋ฅผ ์œ„ํ•ด ์ •๋ฆฌ๋ฅผ ํ•˜๋˜ ์ค‘์— ํ›„๋ณดํ‚ค(Candidate Key)์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์ด ํ•„์š”ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ํ›„๋ณดํ‚ค์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด ์ž˜ ๊ธฐ์–ต๋‚˜์ง€ ์•Š๋˜ ์ œ์ด์ง€๋Š”, ์ •ํ™•ํ•œ ๋‚ด์šฉ์„ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ จ ์„œ์ ์„ ํ™•์ธํ•˜์—ฌ ์•„๋ž˜์™€ ๊ฐ™์€ ๋‚ด์šฉ์„ ํ™•์ธํ•˜์˜€๋‹ค. ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฆด๋ ˆ์ด์…˜(Relation)์˜ ํŠœํ”Œ(Tuple)์„ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ์†์„ฑ(Attribute) ๋˜๋Š” ์†์„ฑ์˜ ์ง‘ํ•ฉ ์ค‘, ๋‹ค์Œ ๋‘ ์„ฑ์งˆ์„ ๋งŒ์กฑํ•˜๋Š” ๊ฒƒ์„ ํ›„๋ณด ํ‚ค(Candidate Key)๋ผ๊ณ  ํ•œ๋‹ค. ์œ ์ผ์„ฑ(uni..

[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: ์ˆœ์—ด๊ณผ ์กฐํ•ฉ (์ฝ”๋“œ, next_permutation ์ด์šฉ, ์ง์ ‘ ๊ตฌํ˜„)
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 9. 7. 10:44

์ˆœ์—ด๊ณผ ์กฐํ•ฉ ์ˆœ์—ด ์ •์˜ ์ˆœ์—ด์€ ์ค‘๋ณต์—†์ด n๊ฐœ ์ค‘ r๊ฐœ๋ฅผ ๋ฝ‘์•„ ์ˆœ์„œ๋ฅผ ์ •ํ•ด ๋‚˜์—ดํ•˜๋Š” ๊ฒฝ์šฐ์ด๋‹ค. ์œ„์˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ A, B, C ์„ธ๊ฐ€์ง€ ์›์†Œ๊ฐ€ ์žˆ์„ ๋•Œ, 2๊ฐœ๋ฅผ ๋ฝ‘์•„ ์ˆœ์„œ๋ฅผ ์ •ํ•˜๋Š” ๊ฒƒ์„ 3P2๋ผ๊ณ  ํ•œ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๋‚˜์˜ค๋ฏ€๋กœ ์ด 6๊ฐ€์ง€ ์ด๋‹ค. ์ˆœ์—ด์€ P(Permutation)๋กœ ํ‘œํ˜„ํ•˜๋ฉฐ ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. $$ {}n\mathrm{P}{r} = \frac{n!}{(n-r)!} $$ ์ค‘๋ณต ์ˆœ์—ด์ด๋ผ๋Š” ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ๋Š” ์ˆœ์—ด ์ค‘ ๊ฐ™์€ ์ข…๋ฅ˜์˜ ๊ฒƒ์„ ๋‹ค์‹œ ๋ฝ‘์„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ ๋งํ•œ๋‹ค. ์ค‘๋ณต ์ˆœ์—ด์€ Π๋กœ ํ‘œํ˜„ํ•˜๋ฉฐ ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. $$ {n}\mathrm{\pi}{r} = n^r $$ ๊ตฌํ˜„ ์ˆœ์—ด // ์ง์ ‘ ๊ตฌํ˜„ void swap(vector& set, int a, int b){ int tmp = set[a]; ..