โ€œ๋ฐฐํ‹€ ๋ผ์ด๋ธŒโ€: ํฌ๋ฅดํˆฌ์˜ ICPC ๊ฒฐ์Šน์ „

์˜ค๋Š˜ ๊ตญ์ œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋Œ€ํšŒ ICPC 2019์˜ ๊ฒฐ์Šน์ „์€ ํฌ๋ฅดํˆฌ๊ฐˆ ํฌ๋ฅดํˆฌ์—์„œ ๊ฐœ์ตœ๋˜๋ฉฐ ITMO ๋Œ€ํ•™ ๋Œ€ํ‘œ์™€ ๋Ÿฌ์‹œ์•„, ์ค‘๊ตญ, ์ธ๋„, ๋ฏธ๊ตญ ๋ฐ ๊ธฐํƒ€ ๊ตญ๊ฐ€์˜ ๋Œ€ํ•™ ํŒ€์ด ์ฐธ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ข€ ๋” ์ž์„ธํžˆ ๋ง์”€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

โ€œ๋ฐฐํ‹€ ๋ผ์ด๋ธŒโ€: ํฌ๋ฅดํˆฌ์˜ ICPC ๊ฒฐ์Šน์ „
ICPC๋‰ด์Šค /ํ”Œ๋ฆฌ์ปค/ CC BY / ํ‘ธ์ผ“ ICPC-2016 ๊ฒฐ์Šน์ „ ์‚ฌ์ง„

ICPC ๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

ICPC ํ•™์ƒ๋“ค ์‚ฌ์ด์˜ ๊ตญ์ œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋Œ€ํšŒ์ž…๋‹ˆ๋‹ค. 40๋…„ ๋„˜๊ฒŒ ๊ฐœ์ตœ๋˜์–ด์˜จ ์ฒซ ๋ฒˆ์งธ ๊ฒฐ์Šน์ „ ํ†ต๊ณผ ๋œ 1977๋…„์œผ๋กœ ๊ฑฐ์Šฌ๋Ÿฌ ์˜ฌ๋ผ๊ฐ‘๋‹ˆ๋‹ค. ์„ ํƒ์€ ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๋กœ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ๋Œ€ํ•™์€ ์ง€์—ญ(์œ ๋Ÿฝ, ์•„์‹œ์•„, ์•„ํ”„๋ฆฌ์นด, ๋ฏธ๊ตญ ๋“ฑ)๋ณ„๋กœ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค. ๊ฐ๊ฐ์€ ์ค‘๊ฐ„ ๋‹จ๊ณ„, ํŠนํžˆ ๋ถ์œ ๋ผ์‹œ์•„ ์ค€๊ฒฐ์Šน์ „์„ ๊ฐœ์ตœํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ๋Œ€ํ•™์—์„œ ์žˆ์—ˆ๋˜ ์ผ. ์ง€์—ญ๋ณ„ ์Šคํ…Œ์ด์ง€์˜ ์Šน์ž๋Š” ๊ฒฐ์Šน์ „์— ์ฐธ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

ICPC์—์„œ๋Š” XNUMX๋ช…์˜ ์ฐธ๊ฐ€์ž๋กœ ๊ตฌ์„ฑ๋œ ํŒ€์ด ์ธํ„ฐ๋„ท์— ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์€ ์ปดํ“จํ„ฐ ํ•œ ๋Œ€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋„๋ก ์š”์ฒญ๋ฐ›์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ˆ  ์™ธ์—๋„ ํŒ€์›Œํฌ ๊ธฐ์ˆ ๋„ ํ…Œ์ŠคํŠธ๋ฉ๋‹ˆ๋‹ค.

ITMO ๋Œ€ํ•™ ํŒ€์€ ICPC ๋ณธ์ƒ์„ 2019๋ฒˆ์ด๋‚˜ ์ˆ˜์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ˆ˜๋…„ ๋™์•ˆ ์ง€์†๋œ ์ ˆ๋Œ€์ ์ธ ๊ธฐ๋ก์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ICPC ์ปต XNUMX๋ฅผ ์œ„ํ•œ ์ „ํˆฌ์—์„œ ์ถฉ๋Œํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค ์ „ ์„ธ๊ณ„ 135๊ฐœ ๊ทธ๋ฃน. ITMO ๋Œ€ํ•™์€ ์˜ฌํ•ด ๋Œ€ํ‘œ๋ฉ๋‹ˆ๋‹ค ์ผ๋ฆฌ์•„ ํฌ๋‘๋ ˆ๋ฉ”๋‹ˆํฌ, ์Šคํƒ€๋‹ˆ์Šฌ๋ผํ”„ ๋‚˜์šฐ๋ชจํ”„ ะธ ๋กœ๋งŒ ์ฝ”๋กญ์ฝ”ํ”„.

๊ฒฐ์Šน์ „์€ ์–ด๋–ป๊ฒŒ ์ง„ํ–‰๋˜๋‚˜์š”?

๋Œ€ํšŒ ๊ธฐ๊ฐ„ ๋™์•ˆ ํŒ€์€ ์ปดํ“จํ„ฐ ํ•œ ๋Œ€๋ฅผ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค 18.04์ธ์šฉ. Ubuntu XNUMX๋ฅผ ์‹คํ–‰ํ•˜๋ฉฐ vi/vim, gvim, emacs, gedit, geany ๋ฐ kate๊ฐ€ ์‚ฌ์ „ ์„ค์น˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Python, Kotlin, Java ๋˜๋Š” C++๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒ€์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ฉด ์ด๋ฅผ ํ…Œ์ŠคํŠธ ์„œ๋ฒ„๋กœ ์ „๋‹ฌํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ฐธ๊ฐ€์ž๋“ค์€ ๊ธฐ๊ณ„๊ฐ€ ์–ด๋–ค ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ๋Š”์ง€ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋‘ ์„ฑ๊ณตํ•˜๋ฉด ํŒ€์€ ๋ณด๋„ˆ์Šค ํฌ์ธํŠธ๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ํ•™์ƒ์ด ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๋„๋ก ๋ณด๋‚ด์ง‘๋‹ˆ๋‹ค.

ICPC ๊ทœ์น™์— ๋”ฐ๋ฅด๋ฉด ๊ฐ€์žฅ ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ ํŒ€์ด ์Šน๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌํ•œ ํŒ€์ด ์—ฌ๋Ÿฌ ๊ฐœ์ธ ๊ฒฝ์šฐ ๊ฐ€์žฅ ์งง์€ ํŽ˜๋„ํ‹ฐ ์‹œ๊ฐ„์œผ๋กœ ์Šน์ž๊ฐ€ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ์ฐธ๊ฐ€์ž๋“ค์€ ํ•ด๊ฒฐ๋œ ๊ฐ ๋ฌธ์ œ์— ๋Œ€ํ•ด ํŒจ๋„ํ‹ฐ ์‹œ๊ฐ„์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„(๋ถ„)์€ ๋Œ€ํšŒ ์‹œ์ž‘๋ถ€ํ„ฐ ํ…Œ์ŠคํŠธ ์„œ๋ฒ„๊ฐ€ ์ž‘์—…์„ ์Šน์ธํ•  ๋•Œ๊นŒ์ง€์˜ ์‹œ๊ฐ„๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ํŒ€์ด ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์œผ๋ฉด ์ด๋ฅผ ํ†ต๊ณผํ•˜๋ ค๋Š” ์ž˜๋ชป๋œ ์‹œ๋„์— ๋Œ€ํ•ด ์ถ”๊ฐ€๋กœ XNUMX๋ถ„์˜ ํŽ˜๋„ํ‹ฐ๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค.

โ€œ๋ฐฐํ‹€ ๋ผ์ด๋ธŒโ€: ํฌ๋ฅดํˆฌ์˜ ICPC ๊ฒฐ์Šน์ „
ICPC๋‰ด์Šค /ํ”Œ๋ฆฌ์ปค/ CC BY / ํ‘ธ์ผ“ ICPC-2016 ๊ฒฐ์Šน์ „ ์‚ฌ์ง„

์ƒ˜ํ”Œ ๋ฌธ์ œ

์ฑ”ํ”ผ์–ธ์‹ญ์˜ ๋ชฉํ‘œ์—๋Š” ํŒ€ ์กฐ์ •๊ณผ ์ง‘์ค‘์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ฐœ๋ณ„ ์ˆ˜ํ•™์  ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ์ง€์‹์„ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ICPC 2018 ์ฐธ๊ฐ€์ž์—๊ฒŒ ์ œ๊ณต๋œ ์ž‘์—…์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค.

ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ์—๋Š” "๊ฐ•"์ด๋ผ๋Š” ์šฉ์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์—ฌ๋Ÿฌ ์ค„์˜ ํ…์ŠคํŠธ๋กœ ๊ตฌ์„ฑ๋œ ๋‹จ์–ด ์‚ฌ์ด์˜ ์ผ๋ จ์˜ ๊ณต๋ฐฑ์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ํ•˜์ฒœ ์ „๋ฌธ๊ฐ€๊ฐ€ (์ง„์งœ๋กœ) ์ฑ…์„ ์ถœํŒํ•˜๊ณ  ์‹ถ์–ด ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Š” ๊ณ ์ • ํญ ๊ธ€๊ผด๋กœ ์ธ์‡„ํ•  ๋•Œ ํŽ˜์ด์ง€์— ๊ฐ€์žฅ ๊ธด ํ™œ์ž์ฒด ๊ฐ•์ด "ํ˜•์„ฑ"๋˜๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค. ์ฐธ๊ฐ€์ž๋“ค์€ ์ด ์กฐ๊ฑด์ด ์ถฉ์กฑ๋  ํ•„๋“œ์˜ ๋„ˆ๋น„๋ฅผ ๊ฒฐ์ •ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ž…๋ ฅ์—์„œ ํ”„๋กœ๊ทธ๋žจ์€ ํ…์ŠคํŠธ์˜ ๋‹จ์–ด ์ˆ˜๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์ •์ˆ˜ n(2 โ‰ค n โ‰ค 2)์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์œผ๋กœ ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•œ ์ค„์˜ ๋‹จ์–ด๋Š” ๊ณต๋ฐฑ ํ•œ ๊ฐœ๋กœ ๊ตฌ๋ถ„๋˜์—ˆ์œผ๋ฉฐ 500์ž๋ฅผ ์ดˆ๊ณผํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ถœ๋ ฅ์—์„œ ํ”„๋กœ๊ทธ๋žจ์€ ๊ฐ€์žฅ ๊ธด "๊ฐ•"์ด ํ˜•์„ฑ๋˜๋Š” ๋“คํŒ์˜ ๋„ˆ๋น„์™€ ์ด ๊ฐ•์˜ ๊ธธ์ด๋ฅผ ํ‘œ์‹œํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ „์ฒด ๋ชฉ๋ก ๋’ค๋กœ ์ž‘๋…„๋ถ€ํ„ฐ ๊ทธ๋ฆฌ๊ณ  ๋˜ ์„ค๋ช…๊ณผ ํ•จ๊ป˜ ํ•ด๊ฒฐ์ฑ… ICPC ํ™ˆํŽ˜์ด์ง€์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๊ฐ€ ํฌํ•จ๋œ ์•„์นด์ด๋ธŒ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค, ์ฐธ๊ฐ€์ž์˜ ํ”„๋กœ๊ทธ๋žจ์ด "๋…ธ์ถœ"๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์˜ค๋Š˜ ์˜คํ›„ ์ฑ”ํ”ผ์–ธ์‹ญ ํ™ˆํŽ˜์ด์ง€์—์„œ ๊ณผ YouTube ์ฑ„๋„ ํ˜„์žฅ ์ƒ์ค‘๊ณ„๊ฐ€ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ ์ด์šฉ ๊ฐ€๋Šฅ ๊ณต์—ฐ ์ „ ๋…น์Œ.

Habrรฉ ๋ธ”๋กœ๊ทธ์—๋Š” ๋˜ ์–ด๋–ค ๋‚ด์šฉ์ด ์žˆ๋‚˜์š”?

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€