Skip to content

Latest commit

ย 

History

176 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

GWEB ์˜ˆ์ œ

GWEB์€ Go๋ฅผ ์œ„ํ•œ ๋ฌธํ•™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹œ์Šคํ…œ์ด๋‹ค. ํฌ๋ˆ„์Šค์™€ ๋ ˆ๋น„์˜ CWEB์„ ๊ฐ€๊นŒ์ด ๋ณธ๋–ด๋‹ค. ํ™•์žฅ์ž .w ํŒŒ์ผ ํ•˜๋‚˜์— TeX ์‚ฐ๋ฌธ๊ณผ Go ์ฝ”๋“œ๋ฅผ ์—ฎ์–ด ๋‘๋ฉด, ๋„๊ตฌ ๋‘˜์ด ๊ทธ๊ฒƒ์„ ์„œ๋กœ ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ์œผ๋กœ ์ฝ๋Š”๋‹ค. ๋„๊ตฌ gtangle์€ ๊ธฐ๊ณ„๊ฐ€ ์ฝ์„ .go๋ฅผ ๋ฝ‘์•„๋‚ด๊ณ , gweave๋Š” ์‚ฌ๋žŒ์ด ์ฝ์„ ์ƒํ˜ธ ์ฐธ์กฐ ๋ฌธ์„œ๋ฅผ ์กฐํŒํ•œ๋‹ค. ํ”„๋กœ๊ทธ๋žจ๊ณผ ๊ทธ๊ฒƒ์„ ์„ค๋ช…ํ•˜๋Š” ๊ธ€์€ ๋”ฐ๋กœ ๋งž์ถฐ ๋‘๋Š” ๋‘ ์‚ฐ์ถœ๋ฌผ์ด ์•„๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ํŒŒ์ผ์ด๋‹ค.

์ด ์ €์žฅ์†Œ๋Š” ๊ทธ๋ ‡๊ฒŒ ์“ด ํ”„๋กœ๊ทธ๋žจ์„ ๋ชจ์€ ๊ฒƒ์ด๋‹ค. ๋ฒ”์œ„๋Š” ์ผ๋ถ€๋Ÿฌ ๋„“๊ฒŒ ์žก์•˜๋‹ค. ํฌ๋ˆ„์Šค์˜ CWEB ํ”„๋กœ๊ทธ๋žจ์„ ์˜ฎ๊ธด ๊ฒƒ์ด ๊ฐ€์žฅ ๋งŽ๊ณ , ์•Œ์•„ ๋‘˜ ๋งŒํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ•ด์„ค(์งšํŠธ๋ฆฌ, FFT, ๋ฆฌ์ฐจ์˜ค ํŠธ๋ฆฌ, CDQ ๋ถ„ํ•  ์ •๋ณต)์ด ์žˆ๊ณ , ํ„ฐ๋ฏธ๋„ ์ƒ๋ช… ๊ฒŒ์ž„์ด๋‚˜ ๊ธฐํƒ€ ํŠœ๋„ˆ์ฒ˜๋Ÿผ ๊ทธ ์ž์ฒด๋กœ ๋Œ์•„๊ฐ€๋Š” ํ”„๋กœ๊ทธ๋žจ๋„ ์žˆ๋‹ค. ๋ฌธ์„œ๋Š” ๋ชจ๋‘ ํ•œ๊ธ€๋กœ ์ผ๋‹ค.

์ด๊ฒƒ๋“ค์€ GWEB์„ ์‹ค์ œ๋กœ ์“ฐ๋ฉด ์–ด๋–ค ๋ชจ์Šต์ธ์ง€ ๋ณด์ด๋ ค๊ณ  ์žˆ๊ณ , ๋ฐ”๋ผ๊ฑด๋Œ€ ๊ทธ ์ž์ฒด๋กœ๋„ ์ฝ์„ ๋งŒํ•˜๋ ค๊ณ  ์žˆ๋‹ค. ํŒŒ์ผ .w๊ฐ€ ์งœ ๋‚ด๋Š” PDF๋ถ€ํ„ฐ ๋ณด๊ธฐ๋ฅผ ๊ถŒํ•œ๋‹ค. ๊ทธ์ชฝ์ด ์‚ฌ๋žŒ์˜ ๋ˆˆ์„ ์œ„ํ•œ ๋ฉด์ด๋‹ค.

๋นŒ๋“œ

Makefile์€ ์˜ˆ์ œ๋ฅผ ์ด๋ฆ„(.w์˜ ๊ธฐ๋ณธ ์ด๋ฆ„)์œผ๋กœ ๋นŒ๋“œํ•œ๋‹ค.

make ziptree   # ziptree.w -> ziptree.go (+ @( ) ๋กœ ๋ฝ‘๋Š” ํŒŒ์ผ๋“ค) + ziptree.pdf
make           # ์‚ฌ์šฉ๋ฒ• ๋ณด๊ธฐ
make clean     # .w/.ch ์›๋ณธ๋งŒ ๋‚จ๊ธฐ๊ณ  ์ƒ์„ฑ๋ฌผ ์‚ญ์ œ

์˜ˆ์ œ๋Š” ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์”ฉ ๋นŒ๋“œํ•œ๋‹ค(make all์€ ์—†๋‹ค). ์งœ ๋‚ธ .go๋Š” ๊ฑฐ์˜ ๋ชจ๋‘ ์ €๋งˆ๋‹ค main()์„ ๊ฐ€์ง„ package main์ด๋ผ, ํ•œ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ํ•œ๊บผ๋ฒˆ์— ํ’€๋ฉด Go๊ฐ€ main ์ค‘๋ณต์œผ๋กœ ์ปดํŒŒ์ผ์„ ๊ฑฐ๋ถ€ํ•œ๋‹ค.

์กฐํŒ์€ ๊ทธ๋ฆผ์ด ์žˆ๋“  ์—†๋“  ๋ชจ๋‘ luatex์œผ๋กœ ํ•œ๋‹ค. ํ•œ๊ธ€ ๋ฌธ์„œ(\input kotexgweb.tex, ์•„๋ž˜ ์ฐธ์กฐ)์™€ ๊ทธ๋ฆผ ์žˆ๋Š” ๋ฌธ์„œ(\input luamplib.sty)๊ฐ€ luatex์„ ์š”๊ตฌํ•˜๊ณ , ์—ฌ๊ธฐ ์žˆ๋Š” ๋ฌธ์„œ๋Š” ๋ชจ๋‘ ๊ทธ ๋‘˜ ๊ฐ€์šด๋ฐ ํ•˜๋‚˜๋‹ค.

๊ทธ๋ฆผ์—๋Š” ๋”ฐ๋กœ ๋นŒ๋“œ ๋‹จ๊ณ„๊ฐ€ ํ•„์š” ์—†๋‹ค. luamplib์ด ๋ฌธ์„œ๋ฅผ ์กฐํŒํ•˜๋Š” ๋™์•ˆ MetaPost๋ฅผ ๊ทธ ์ž๋ฆฌ์—์„œ ๋Œ๋ฆฐ๋‹ค. ๋”ฐ๋กœ ๋„๋Š” mpost ๋‹จ๊ณ„๋„, ์ค‘๊ฐ„ PDF๋„ ์—†๊ณ , ๊ทธ๋ฆผ์˜ ๋ผ๋ฒจ์€ ๋ฌธ์„œ ์ž์‹ ์˜ ๊ธ€๊ผด๋กœ ์งœ์ธ๋‹ค. MetaPost๋Š” ๋ช‡ ์žฅ์ด๋“  .w ์•ˆ์— ๊ทธ๋Œ€๋กœ ๋‹ด๋Š”๋‹ค. ๋‚จ์€ .mp๋Š” ๋„ท๋ฟ์ด๊ณ  ์ €๋งˆ๋‹ค ๊นŒ๋‹ญ์ด ์žˆ๋‹ค. tarjan-strong.mp์™€ wordcube.mp๋Š” ๋ฌธ์„œ ๋‘˜์ด ๋‚˜๋ˆ  ์“ฐ๋Š” ๋„์šฐ๋ฏธ์ด๊ณ , hyperbolic-arcs.mp๋Š” hyperbolic.w์˜ ํ”„๋กœ๊ทธ๋žจ์ด ๋ฑ‰๋Š” ์ขŒํ‘œ์ด๋ฉฐ, skew-ternary/skew-ternary-calc.mp๋Š” ํฌ๋ˆ„์Šค๊ฐ€ ๋ฐœํ‘œํ•œ ํŒŒ์ผ์„ ๊ณ ์นœ ๊ฒƒ์ด๋ผ ์›๋ณธ๊ณผ ํ•œ ์ค„์”ฉ ๊ฒฌ์ค„ ์ˆ˜ ์žˆ๊ฒŒ ๊ทธ๋Œ€๋กœ ๋‘์—ˆ๋‹ค. ๋ชจ๋‘ \everymplib{input <์ด๋ฆ„>;}์œผ๋กœ ์ฝ์–ด๋“ค์ธ๋‹ค.

์ถ”์ ํ•˜๋Š” ๊ฒƒ์€ ์›๋ณธ๊ณผ ์ž๋ฃŒ๋ฟ์ด๋‹ค. ์›๋ณธ์€ .w/.ch ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋‚จ์€ MetaPost ํŒŒ์ผ(*.mp)์ด๊ณ , ์ž๋ฃŒ๋Š” wordcube.w์™€ word-cube-dlx.w๊ฐ€ ์ฝ๋Š” ๋‚ฑ๋ง ๋ชฉ๋ก sgb-words.txt, ๊ทธ๋ฆฌ๊ณ  enigmatic-puzzle.w๊ฐ€ 5-๊ทธ๋žจ ๊ณ„์ˆ˜์— ์“ฐ๋Š” ํฌ๋ˆ„์Šค์˜ ์›๋ฌธ VOL1TEXT.txt๋‹ค. ์—ฌ๊ธฐ ์žˆ๋Š” .go์™€ PDF๋Š” ๋ชจ๋‘ ์ƒ์„ฑ๋ฌผ์ด๋‹ˆ, ๋นŒ๋“œํ•˜๊ธฐ ์ „์—๋Š” ์—†๋‹ค.

๋ชฉ๋ก์— ์—†๋Š” types.w๋Š” ์˜ˆ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ ๋ชจ๋“  ๋ฌธ์„œ๊ฐ€ @i๋กœ ์ฝ์–ด๋“ค์ด๋Š” ๊ณต์šฉ ํฌํ•จ ํŒŒ์ผ์ด๋‹ค. @d์™€ @s ์ง€์‹œ์ž๋งŒ ๋“ค์–ด ์žˆ์–ด ํ˜ผ์ž์„œ๋Š” tangle ํ•  ๊ฒƒ์ด ์—†๋‹ค.

์•„๋ž˜ ๋ชฉ๋ก์—์„œ .w๊ฐ€ ์•„๋‹ˆ๋ผ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํ•ญ๋ชฉ์€ ์ €๋งˆ๋‹ค README.md, Makefile, go.mod๋ฅผ ๊ฐ–์ถ˜ ๋ณ„๊ฐœ์˜ ํ”„๋กœ์ ํŠธ๋‹ค. ์ด ์ €์žฅ์†Œ์˜ Makefile์€ ๊ทธ ์•ˆ์œผ๋กœ ๋“ค์–ด๊ฐ€์ง€ ์•Š์œผ๋‹ˆ, ๊ทธ๊ฒƒ๋“ค์€ ์•ˆ์—์„œ ๋นŒ๋“œํ•œ๋‹ค(cd life-game && make).

  • 15puzzle-korf1.w โ€” 15 ํผ์ฆ์˜ ์ตœ์†Œ ์ˆ˜ ํ’€์ด๋ฅผ ์ฝ”๋ฅดํ”„์˜ ๋ฐ˜๋ณต ๊นŠ์ด ์ฆ๊ฐ€๋กœ ์ฐพ๋Š”๋‹ค. ๋งจํ•ดํŠผ ํ•˜ํ•œ์„ ์จ์„œ ๋จผ์ € "ํ–‰๋ณตํ•œ" ์ˆ˜๋งŒ์œผ๋กœ ํ•ด ๋ณด๊ณ , ์•ˆ ๋˜๋ฉด "์Šฌํ”ˆ" ์ˆ˜๋ฅผ ํ•˜๋‚˜์”ฉ ๋Š˜๋ ค ๊ฐ„๋‹ค. ์•ˆ์ชฝ ๋ฐ˜๋ณต๋ฌธ์€ ์†์œผ๋กœ ํŽผ์นœ ๊ฒฝ์šฐ 152๊ฐ€์ง€ (r,c,d,p)์˜ ์œ ํ•œ ์ƒํƒœ ์˜คํ† ๋งˆํ†ค์ด๋‹ค. ๋นˆ์นธ์ด (r,c)์— ์žˆ๊ณ , ๋ฐฉํ–ฅ p์—์„œ ๋“ค์–ด์™”์œผ๋ฉฐ, ์ด์ œ d๋กœ ๊ฐ€ ๋ณธ๋‹ค๋Š” ๋œป์ด๊ณ , ๊ฒฝ์šฐ๋“ค์€ goto๋กœ ์ด์–ด์ง€๋ฉฐ ๋˜์งš์–ด ๊ฐˆ ๊ณณ์€ ๋ถ€ํ˜ธ๋ฅผ ์Œ“๋Š” ์Šคํƒ์ด ๊ธฐ์–ตํ•œ๋‹ค. Go๋Š” case ๋ธ”๋ก ์•ˆ์œผ๋กœ ๋›ฐ์–ด๋“ค ์ˆ˜ ์—†์œผ๋ฏ€๋กœ, ์ด๋ฆ„ํ‘œ 152๊ฐœ๋ฅผ ํ•œ ๋ธ”๋ก์— ๋‚˜๋ž€ํžˆ ๋‘๊ณ  switch๋Š” ๋ถ„๊ธฐ๋งŒ ํ•œ๋‹ค. ๋ถ€ํ˜ธ๋Š” 16์ง„์ˆ˜ 0xrcdp๋ผ์„œ ๋ถ„๊ธฐํ‘œ์™€ ์ด๋ฆ„ํ‘œ๋ฅผ ๋ˆˆ์œผ๋กœ ๋ฐ”๋กœ ๋งž๋Œ€์–ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ „์ด 152๊ฐ€์ง€๋ฅผ ๋ชจ๋‘ ๊ธฐ๊ณ„๋กœ ํฌ๋ˆ„์Šค์˜ ์›๋ฌธ๊ณผ ๋งž์ถฐ ๋ณด์•˜๊ณ , ํ‹€๋ฆฐ ๊ฒƒ์€ ํ•˜๋‚˜๋„ ์—†์—ˆ๋‹ค. ๊ฒฐํ•จ์€ ํ•˜๋‚˜, ์ฒ˜์Œ ๋ฐฐ์น˜๊ฐ€ ์ด๋ฏธ ๋ชฉํ‘œ์ผ ๋•Œ 1970๋…„๋ถ€ํ„ฐ์˜ ์ดˆ๋ฅผ ์ฐ๋Š” ๊ฒƒ์ด๋‹ค. ๋ฐฐ์น˜ 1800๊ฐœ์—์„œ CํŒ๊ณผ ์ถœ๋ ฅ์ด ๋ฐ”์ดํŠธ๊นŒ์ง€ ๊ฐ™๊ณ , ํ’€์ด๋Š” ํ•œ ๊ฑธ์Œ์”ฉ ๊ฒ€์‚ฌํ–ˆ๋‹ค. ์ฒ˜์Œ ์˜ฎ๊ธด GoํŒ์€ C๋ณด๋‹ค 25% ๋А๋ ธ๋‹ค. ๊ฒฝ์šฐ 152๊ฐ€์ง€๋ฅผ ๋ชจ๋‘ ํ’ˆ์€ main์„ Go์˜ ์ธ๋ผ์ด๋„ˆ๊ฐ€ 'ํฐ' ํ•จ์ˆ˜๋กœ ๋ณด์•„ ๋น„์šฉ 20 ์ดํ•˜์˜ ํ•จ์ˆ˜๋งŒ ๋ผ์›Œ ๋„ฃ๋Š”๋ฐ, ๊ฐ’ ๋‘˜์„ ๋Œ๋ ค์ฃผ๋Š” east(r,c)๋Š” ๋น„์šฉ์ด 26์ด๋ผ ๊ฒฝ์šฐ๋งˆ๋‹ค ์ง„์งœ ํ˜ธ์ถœ์ด ์ผ์–ด๋‚˜๊ณ  s์™€ t๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋ฐ€๋ ค๋‚ฌ๋‹ค. ์กฐ๊ฐ์€ ๊ทธ ์ž๋ฆฌ์—์„œ ์ฝ๊ณ  ๊ฐ’ ํ•˜๋‚˜์งœ๋ฆฌ happy(x)(๋น„์šฉ 8)๋งŒ ๋‚จ๊ธฐ์ž ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค. ์ฝ”๋ฅดํ”„์˜ ๊ฐ€์žฅ ์–ด๋ ค์šด ์˜ˆ ca6098dfb73254e1์ด C์˜ 24์ดˆ์— ๋งž์„œ Go์—์„œ 22์ดˆ๋‹ค.
  • back-20q.w โ€” ๋ˆ ์šฐ์ฆˆ์˜ ์Šค๋ฌด ๋ฌธ์ œ๋ฅผ ํ‘ผ๋‹ค. ์Šค๋ฌด ๊ฐœ์˜ ๊ฐ๊ด€์‹ ๋ฌธํ•ญ์ด ๋ชจ๋‘ ์ž๊ธฐ๊ฐ€ ์ธ์‡„๋œ ๋‹ต์•ˆ์ง€๋ฅผ ๋‘๊ณ  ํ•˜๋Š” ๋ง์ด๋‹ค("๋‹ต์ด A์ธ ์ฒซ ๋ฌธํ•ญ์€โ€ฆ", "์ด ์‹œํ—˜์—์„œ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ตœ๊ณ  ์ ์ˆ˜๋Š”โ€ฆ"). ๋‹ค์„ฏ ๋น„ํŠธ ํ›„๋ณด ์ง‘ํ•ฉ ์œ„์˜ ๋ฐฑํŠธ๋ž˜ํ‚น์ธ๋ฐ, ๋ฌธํ•ญ๋งˆ๋‹ค ๊ทธ ์ž๋ฆฌ์—์„œ ํŒ์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„๊ณผ ์Šค๋ฌด ๊ธ€์ž๊ฐ€ ๋‹ค ์ •ํ•ด์ ธ์•ผ ์•Œ ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์œผ๋กœ ๊ฐˆ๋ผ ๋‘๊ณ , ๊ฐ•์ œ๋œ ๊ธ€์ž ํ•˜๋‚˜๊ฐ€ ์ด์›ƒํ•œ ๋ฌธํ•ญ๋“ค๋กœ ์ค„์ค„์ด ๋ฒˆ์ ธ ๊ฐ„๋‹ค. ๋ฌธ์„œ๋Š” ์Šค๋ฌด ๋ฌธํ•ญ์„ ๋ชจ๋‘ ์ธ์šฉํ•˜๊ณ (๋” ์ฝ๊ธฐ ์ „์— ์ง์ ‘ ํ’€์–ด ๋ณด์‹œ๋ผ) ์ ˆ ํ•˜๋‚˜์— ๋ฌธํ•ญ ํ•˜๋‚˜์”ฉ ์ฝ”๋“œ๋กœ ์˜ฎ๊ธด๋‹ค. ๊ทธ ๊ณผ์ •์—์„œ ๋ฐœํ‘œ๋œ CWEB์˜ ์ž˜๋ชป ๋‘˜์„ ์ฐพ์•„ ๊ณ ์ณค๋‹ค. ๋‹ฟ์„ ์ˆ˜ ์—†๋Š” ์ค„ ๋•Œ๋ฌธ์— 18๋ฒˆ์„ ํ‹€๋ฆด ์ˆ˜๊ฐ€ ์—†์—ˆ๋˜ ๊ฒƒ๊ณผ, ๋’ค์ง‘ํžŒ ๊ฒ€์‚ฌ ๋•Œ๋ฌธ์— 15๋ฒˆ์ด ์‚ฌ์‹ค์€ ๋งž๋Š”๋ฐ๋„ ํ‹€๋ฆฐ ๊ฒƒ์œผ๋กœ ๋งค๊ฒจ์งˆ ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฒƒ์ด๋‹ค. ๊ทธ ํƒ“์— ์›๋ณธ์€ ์˜ณ์€ ๋‹ต์•ˆ์ง€ 14์žฅ์„ ์žƒ๊ณ  ๊ทธ๋ฅธ ๋‹ต์•ˆ์ง€ 5์žฅ์„ ์–ป์—ˆ๋‹ค. ํผ์ฆ ์ž์ฒด์˜ ๋‹ต์€ ๊ทธ๋Œ€๋กœ๋‹ค. ์ตœ๊ณ  ์ ์ˆ˜๋Š” 19์ ์ด๊ณ , 20๋ฒˆ์„ ๋งžํžˆ๋ฉด์„œ ๊ทธ ์ ์ˆ˜์— ๋‹ฟ๋Š” ๋‹ต์•ˆ์ง€๋Š” ์ •ํ™•ํžˆ ํ•˜๋‚˜๋‹ค. ๊ณ ์นœ ์›๋ณธ๊ณผ ๊ฑฐ์ง“ ํŒจํ„ด 211๊ฐ€์ง€ ๋ชจ๋‘์—์„œ ๋งž์ถฐ ๋ณด์•˜๊ณ , ์˜๋ฌธ ๋ฌธ์ œ์—์„œ ์ƒˆ๋กœ ์“ด ๋…๋ฆฝ ์ฑ„์ ๊ธฐ์™€๋„, ํƒ์ƒ‰ ์ˆœ์„œ๋ฅผ ์—ด๋‘ ๊ฐ€์ง€๋กœ ๋ฐ”๊พผ ๊ฒƒ๊ณผ๋„ ๋งž์ถฐ ๋ณด์•˜๋‹ค. ํฌ๋ˆ„์Šค์˜ ๋ณ€๊ฒฝ ํŒŒ์ผ ๋‘˜๋„ GWEB ๋ณ€๊ฒฝ ํŒŒ์ผ๋กœ ํ•จ๊ป˜ ์˜ฎ๊ฒผ๋‹ค(back-20q-backmod9,15.ch, back-20q-backmod9,15-indet.ch). ์ €๋งˆ๋‹ค ๋ฌธํ•ญ ๋‘์—‡์„ ๊ณ ์ณ ์“ฐ๊ณ  ์ œ ๋‹ต์„ ๋ณด๊ณ ํ•˜๋Š”๋ฐ, ๊ทธ ๊ฐ€์šด๋ฐ ์ฒซ์งธ๋Š” 15๋ฒˆ ๊ฒฐํ•จ์ด ์–ด๋””์„œ ์™”๋Š”์ง€ ์ง์ž‘ํ•˜๊ฒŒ ํ•œ๋‹ค. ๊ทธ ๋ฌธ๊ตฌ๋Œ€๋กœ๋ผ๋ฉด ๋‹ค์„ฏ ์„ ํƒ์ง€๊ฐ€ ๊ฐ€์ง€๋Ÿฐํžˆ ๋Š˜์–ด์„œ์„œ ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ๊ฐ€ ์‚ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ ์šฉ์€ CWEB์—์„œ ํ•˜๋˜ ๋Œ€๋กœ gtangle back-20q.w back-20q-backmod9,15.ch. MetaPost ๊ทธ๋ฆผ ์…‹.
  • back-dissect.w โ€” ์ •์‚ฌ๊ฐํ˜•์„ ์นธ ๋‹จ์œ„๋กœ d๊ฐœ์˜ ์กฐ๊ฐ์œผ๋กœ ์ž˜๋ผ, ๋Œ๋ฆฌ๊ณ  ๋ฐ€์–ด์„œ ์ฃผ์–ด์ง„ ๋‹ค๋ฅธ ๋ชจ์–‘์„ ์ฑ„์šฐ๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋‘ ์ฐพ๋Š”๋‹ค. ์กฐ๊ฐ๋งˆ๋‹ค ์˜ฎ๊น€๊ณผ ํšŒ์ „์„ ํ•˜๋‚˜์”ฉ ์ •ํ•ด ๋‘๋ฉด ๋‚จ๋Š” ๊ฒƒ์€ ์ด๋ถ„ ๋งค์นญ์ด๋‹ค. ์˜ฎ๊น€๋“ค์ด ๋ชจ์–‘์„ ๋ฎ๋Š”์ง€๋ถ€ํ„ฐ ๊ฑธ๋Ÿฌ ๋‚ด๊ณ , ๊ฐ•์ œ๋œ ์ง์„ ๋จผ์ € ์ง“๊ณ , ๊ทธ๋ž˜๋„ ๋‚จ๋Š” ๋ฌธ์ œ๋Š” ํฌ๋ˆ„์Šค๊ฐ€ DANCE์—์„œ ๋œฏ์–ด ์˜จ ์ถค์ถ”๋Š” ๋งํฌ๋กœ ํ‘ผ๋‹ค. 4ร—9 ์ง์‚ฌ๊ฐํ˜•์˜ ๊ณ„๋‹จ ์ž๋ฅด๊ธฐ๊ฐ€ ๋‘ ์กฐ๊ฐ์œผ๋กœ ๋‚˜์˜ค๊ณ , 4ร—4์™€ 3ร—3์„ ๋‚˜๋ž€ํžˆ ๋†“์€ ๋ชจ์–‘์„ 5ร—5๋กœ ๋งŒ๋“ค๋ ค๋ฉด ์กฐ๊ฐ์ด ์ด์–ด์ ธ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž„ ๋•Œ ๋„ค ์กฐ๊ฐ์ด ๋“ ๋‹ค๋Š” ๊ฒƒ๋„ ์…ˆํ•ด ๋ณธ๋‹ค. ์˜ฎ๊ธฐ๋‹ค๊ฐ€ ๊ฒฐํ•จ ๋‘˜์„ ๋งŒ๋‚ฌ๋‹ค. ์นธ ํ•˜๋‚˜์งœ๋ฆฌ ๋ชจ์–‘์—์„œ ๋ฐฐ์—ด ๋ฐ– s[-1]์„ ์ฝ๊ณ  ์ฃฝ๋Š” ๊ฒƒ๊ณผ, fgets์˜ 37๋ฐ”์ดํŠธ ๋ฒ„ํผ๊ฐ€ ๊ธด ์ค„์„ ์ชผ๊ฐœ ๋ชจ์–‘์„ ์†Œ๋ฆฌ ์—†์ด ๋ฐ”๊พธ๋Š” ๊ฒƒ์ด๋‹ค. ์›๋ณธ๊ณผ ๋ฌด์ž‘์œ„ ๋ชจ์–‘ 697๊ฐœ, ๊ฐ€์žฅ์ž๋ฆฌ 32๊ฐ€์ง€์—์„œ ์ถœ๋ ฅ๊ณผ ์ข…๋ฃŒ ๋ถ€ํ˜ธ๊ฐ€ ๋ฐ”์ดํŠธ๊นŒ์ง€ ๊ฐ™๊ณ , ๊ฒฐํ•จ์ด ๊ฑธ๋ฆฌ๋Š” 9๊ฐ€์ง€๋Š” ๋‘ ๊ฒฐํ•จ๋งŒ ๊ณ ์นœ ์›๋ณธ๊ณผ ๊ฐ™๋‹ค. MetaPost ๊ทธ๋ฆผ ๋‘˜.
  • back-graceful.w โ€” ์Šคํƒ ํผ๋“œ ๊ทธ๋ž˜ํ”„๋ฒ ์ด์Šค ํŒŒ์ผ์—์„œ ์ฝ์€ ๊ทธ๋ž˜ํ”„(go-sgb์˜ gbsave๋ฅผ ์“ด๋‹ค)์˜ ์šฐ์•„ํ•œ ์ด๋ฆ„ํ‘œ๋ฅผ ๋ชจ๋‘ ์ฐพ๋Š”๋‹ค. ๊ผญ์ง“์  ์ด๋ฆ„ํ‘œ๋Š” 0..m์—์„œ ์„œ๋กœ ๋‹ค๋ฅด๊ณ , ๋ณ€์˜ ์ฐจ์ด๊ฐ€ ์ •ํ™•ํžˆ 1..m์ด์–ด์•ผ ํ•˜๋ฉฐ, VERTEX=label๋กœ ์ด๋ฆ„ํ‘œ ๋ช‡ ๊ฐœ๋ฅผ ๋ฏธ๋ฆฌ ์ •ํ•ด ๋‘˜ ์ˆ˜๋„ ์žˆ๋‹ค. ์›Œ์ปค์˜ ๋ฐฑํŠธ๋ž˜ํ‚น(์•Œ๊ณ ๋ฆฌ์ฆ˜ 7.2.2W)์€ ์ธต๋งˆ๋‹ค ์•„์ง ์—†๋Š” ๊ฐ€์žฅ ํฐ ๋ณ€ ์ด๋ฆ„ํ‘œ๋ฅผ ๊ฒจ๋ƒฅํ•˜๊ณ , ์“ด ์ด๋ฆ„ํ‘œ์™€ ์•ˆ ์“ด ์ด๋ฆ„ํ‘œ๋ฅผ 64๋น„ํŠธ ๋งต์— ๋‹ด๊ณ , ๊ณ ๋ฅผ ๊ฒƒ์ด ํ•˜๋‚˜๋กœ ์ค„์–ด๋“  ๊ผญ์ง“์ ์€ ๊ฐ•์ œํ•˜๊ณ , ๋ฏธ๋ฆฌ ์ •ํ•œ ์ด๋ฆ„ํ‘œ๊ฐ€ ์—†์œผ๋ฉด "์ •๊ทœ" ์ด๋ฆ„ํ‘œ๋งŒ ์„ธ์–ด ์—ฌ์ง‘ํ•ฉ์œผ๋กœ ์ผ์„ ์ ˆ๋ฐ˜์œผ๋กœ ์ค„์ธ๋‹ค. ์˜ฎ๊ธฐ๋‹ค๊ฐ€ ํ  ์…‹์„ ๋งŒ๋‚˜ ๋ชจ๋‘ ๊ณ ์น˜๊ณ  ์ ์–ด ๋‘์—ˆ๋‹ค. ๋ณ€์ˆ˜ bad๊ฐ€ int๋ผ์„œ 32 ์ด์ƒ์ธ ๋ณ€ ์ด๋ฆ„ํ‘œ์˜ ์ค‘๋ณต์„ ๋†“์นœ๋‹ค. ๋‹ต์—๋Š” ํ•ด๊ฐ€ ์—†์ง€๋งŒ(์ฐํžŒ ์ด๋ฆ„ํ‘œ๊ฐ€ ๋ชจ๋‘ ์˜ณ๋‹ค๋Š” ๊ฒƒ์€ popcount ๋…ผ์ฆ์œผ๋กœ ๋ณด์ธ๋‹ค) ๋นฝ๋นฝํ•œ ๊ทธ๋ž˜ํ”„์—์„œ ๋งˆ๋””๋ฅผ ์ตœ๋Œ€ 8.9๋ฐฐ๊นŒ์ง€ ๋” ํ›‘๋Š”๋‹ค. 2์ธต์—์„œ ๊ฐ•์ œ๋œ ์ˆ˜๊ฐ€ ์ •๊ทœ ์กฐ๊ฑด์„ ๊ฑด๋„ˆ๋›ฐ์–ด Pโ‚ƒ์˜ ์ •๊ทœ ์ด๋ฆ„ํ‘œ๋ฅผ 2๊ฐœ๊ฐ€ ์•„๋‹ˆ๋ผ 4๊ฐœ๋กœ ์„ผ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‘ ๊ผญ์ง“์ ์— ๊ฐ™์€ ์ด๋ฆ„ํ‘œ๋ฅผ ๋ฏธ๋ฆฌ ์ •ํ•ด ๋‘์–ด๋„ ๋ง‰์ง€ ์•Š์•„ ์—‰๋šฑํ•œ ๋‹ต์ด ๋‚˜์˜จ๋‹ค. ๊ณ ์นœ CํŒ๊ณผ 382๋ฒˆ์˜ ์‹คํ–‰์—์„œ ๋งˆ๋”” ์ˆ˜๊นŒ์ง€ ๋ฐ”์ดํŠธ ํ•˜๋‚˜ ๋‹ค๋ฅด์ง€ ์•Š๊ณ , ๋‹ต์€ ๋ฌด์ฐจ๋ณ„ ๊ณ„์ˆ˜๊ธฐ๋กœ ํ™•์ธํ–ˆ๋‹ค.
  • back-pdi.w โ€” ์ฐจ์ˆ˜ m์˜ ์™„์ „ ์ž๋ฆฟ์ˆ˜ ๋ถˆ๋ณ€์ˆ˜๋ฅผ ๋ชจ๋‘ ์ฐพ๋Š”๋‹ค. ๊ณง ์ œ ์ž๋ฆฟ์ˆ˜์˜ m์ œ๊ณฑ ํ•ฉ๊ณผ ๊ฐ™์€ ์ •์ˆ˜์ธ๋ฐ, 153 = 1ยณ + 5ยณ + 3ยณ ๊ฐ™์€ ๊ฒƒ์ด๋‹ค. ์ž๋ฆฟ์ˆ˜๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๊ณ ๋ฅด๋Š” ๋ฐฑํŠธ๋ž˜ํ‚น์ด๊ณ , ๋‚ ์นด๋กœ์šด ์ƒํ•˜ํ•œ์œผ๋กœ ๊ฐ€์ง€๋ฅผ ์„ธ๊ฒŒ ์ณ ๋‚ธ๋‹ค. ํฐ ์ˆ˜๋Š” ๋ง์…ˆ๋งŒ ์žˆ์œผ๋ฉด ๋˜๋Š” 2์ง„ํ™” 10์ง„๋ฒ•์œผ๋กœ ๋‹ค๋ฃฌ๋‹ค(+6 / โˆ’6 ์˜ฌ๋ฆผ ์š”๋ น์„ ๊ทธ๋ฆผ์œผ๋กœ ํ’€์–ด ๋‘์—ˆ๋‹ค). ํฌ๋ˆ„์Šค์˜ CWEB ํ”„๋กœ๊ทธ๋žจ์„ Go/GWEB์œผ๋กœ ์˜ฎ๊ธด ๊ฒƒ์ด๊ณ , ๋งˆ๋”” ์ˆ˜๊ฐ€ ์›๋ณธ๊ณผ ์ •ํ™•ํžˆ ๊ฐ™๋‹ค. MetaPost ๊ทธ๋ฆผ ํ•˜๋‚˜.
  • back-pi-day.w โ€” ์š”ํ•œ ๋”๋ผ์œ„ํ„ฐ๋ฅด๊ฐ€ 2018๋…„ ํŒŒ์ด ๋ฐ์ด์— ๋‚ธ ํผ์ฆ์„ ๋‹ค๋ฃฌ๋‹ค. 10ร—10 ๊ฒฉ์ž์˜ ์นธ๋งˆ๋‹ค ๋™์„œ๋‚จ๋ถ ๊ฐ€์šด๋ฐ ํ•œ ๋ฐฉํ–ฅ์„ ๊ฐ€๋ฆฌํ‚ค๊ณ , ๊ฐ ์นธ์—๋Š” ๊ทธ ์นธ์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ์นธ๋“ค์˜ ์ด๋ฆ„ํ‘œ ๊ฐ€์šด๋ฐ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฒƒ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋“ค์–ด๊ฐ€์•ผ ํ•œ๋‹ค. ์ฃผ์–ด์ง„ ์ด๋ฆ„ํ‘œ 32๊ฐœ๋Š” ฯ€์˜ ์ฒซ 32์ž๋ฆฌ๋‹ค. ํ›„๋ณด ์ด๋ฆ„ํ‘œ๋Š” ๋น„ํŠธ๋งต์— ๋‹ด๊ณ , ๊ผญ์ง“์ ์„ "์•ˆ์ •"ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์ผ์€ ๋’ค๋”ฐ๋ฅด๋Š” ์นธ๋“ค์˜ ์ด๋ฆ„ํ‘œ ์œ„์—์„œ ์ž‘์€ ๋ฐฑํŠธ๋ž˜ํ‚น์„ ํ•˜๋˜ ฮฝ(popcount)๋กœ ์…ˆํ•œ goal ๋งˆ์Šคํฌ๋กœ ์ณ ๋‚ธ๋‹ค. ์‚ฌ์‹ค์ƒ ์ผ๋ฐ˜ํ™”๋œ ํ˜ธ ์ผ๊ด€์„ฑ์ด๋‹ค. ํ™œ์„ฑ ๋ชฉ๋ก์ด ํšŒ๋งˆ๋‹ค ๊ฐ€์žฅ ๋ถˆ์•ˆ์ •ํ•œ ๊ผญ์ง“์ ์„ ๊ณ ๋ฅด๊ณ , ์—ฌ์„ฏ ํšŒ์— ๊ฑธ์นœ 301๋ฒˆ์˜ ๊ฒ€์‚ฌ ๋์— ๋ชจ๋“  ๋น„ํŠธ๋งต์ด ํ™‘์›์†Œ๊ฐ€ ๋œ๋‹ค. ํฌ๋ˆ„์Šค์˜ ๋‚™๊ด€์ด ๋“ค์–ด๋งž์•„ ๊ฒฝ์šฐ๋ฅผ ๊ฐ€๋ฅผ ์ผ์ด ์—†๋‹ค. ์˜ฎ๊ธด ํŒ์€ C์™€ ์ถœ๋ ฅ์ด ๋ฐ”์ดํŠธ๊นŒ์ง€ ๊ฐ™๋‹ค. ๋””๋ฒ„๊น… ํ”์  197,802์ค„๊ณผ mems 6,865,501๊นŒ์ง€ ๊ฐ™๊ณ , ๋‹ต์ด ํ•˜๋‚˜๋ฟ์ด๋ผ๋Š” ๊ฒƒ์€ ๋”ฐ๋กœ ๋งŒ๋“  ํ’€์ด๊ธฐ๋กœ ํ™•์ธํ–ˆ๋‹ค. MetaPost ๊ทธ๋ฆผ ํ•˜๋‚˜๊ฐ€ ์ฃผ์–ด์ง„ ์ด๋ฆ„ํ‘œ์™€ ์ด๋Œ์–ด ๋‚ธ ์ด๋ฆ„ํ‘œ๋ฅผ ํ•จ๊ป˜ ๋ณด์ธ๋‹ค.
  • back-skeleton.w โ€” ํƒ€์ผ€ ์ค€์•ผ๊ฐ€ ๊ณ ์•ˆํ•œ ๊ณฑ์…ˆ ๋ผˆ๋Œ€ ํผ์ฆ์„ ์ง“๋Š”๋‹ค. ๋ณ„ํ‘œ ๋ฌด๋Šฌ๊ฐ€ ์ฃผ์–ด์ง€๋ฉด, ๊ณฑํ•ด์ง€๋Š” ์ˆ˜์™€ ๊ณฑํ•˜๋Š” ์ˆ˜์™€ ํŠน๋ณ„ํ•œ ์ˆซ์ž d๋ฅผ ์ฐพ๋˜, ๊ณฑํ•˜๋Š” ์ˆ˜์˜ 0๋“ค์ด ์ค„์„ ๋ฐ€์–ด ๋†“๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ์— ๋Œ€ํ•ด d๊ฐ€ ๋ถ€๋ถ„ ๊ณฑ๊ณผ ๊ณฑ์—์„œ ๋ฌด๋Šฌ๊ฐ€ ๋งํ•˜๋Š” ์ž๋ฆฌ์— ์ •ํ™•ํžˆ ๋‚˜ํƒ€๋‚˜์•ผ ํ•œ๋‹ค. ๊ณฑํ•ด์ง€๋Š” ์ˆ˜์˜ ์ž๋ฆฟ์ˆ˜๋ฅผ ์˜ค๋ฅธ์ชฝ๋ถ€ํ„ฐ ๊ณ ๋ฅด๋Š” ๋ฐฑํŠธ๋ž˜ํ‚น์ด๊ณ , ์ œ์•ฝ๋งˆ๋‹ค ๋‘” ์„ ํƒ ๋ชฉ๋ก์ด ๊ณฑํ•˜๋Š” ์ˆ˜์˜ ์ž๋ฆฟ์ˆ˜๋ฅผ ๊ทธ๋•Œ๊ทธ๋•Œ ๊ฐ•์ œํ•˜๋ฉฐ, ์‚ด์•„๋‚จ์€ m์ง๋“ค ์œ„์˜ ์•ˆ์ชฝ ๋ฐ˜๋ณต๋ฌธ์ด ๋งจ ์•„๋žซ์ค„์„ ๊ฒ€์‚ฌํ•œ๋‹ค. ์˜ฎ๊ธฐ๋‹ค๊ฐ€ ๊ฒฐํ•จ์„ ํ•˜๋‚˜ ๋งŒ๋‚ฌ๋‹ค. ์‹ o,tt=(constr[k][0]<=l? 0: o,constr[k][l+1])์—์„œ ์‰ผํ‘œ๊ฐ€ ?:๋ณด๋‹ค ๋А์Šจํ•˜๊ฒŒ ๋ฌถ์—ฌ ๊ธธ์ด ๊ฒ€์‚ฌ๊ฐ€ ์‚ฌ๋ผ์ง€๊ณ , ์•ž์„  ๋ฐ€๋ฆผ์ด ๋‚จ๊ธด ๋‚ก์€ ์ž๋ฆฟ์ˆ˜๊ฐ€ "d์ด๋ฉด ์•ˆ ๋œ๋‹ค"๋ฅผ "d์—ฌ์•ผ ํ•œ๋‹ค"๋กœ ๋’ค์ง‘๋Š”๋‹ค. ๊ทธ๋ž˜์„œ ์›๋ณธ์€ ๋“ค์–ด๊ฐ€๋ฉฐ์— ๋‚˜์˜ค๋Š” ํƒ€์ผ€ ์ž์‹ ์˜ ํผ์ฆ(2208068 ร— 357029)์„ ๋†“์น˜๊ณ , O ๋ฌด๋Šฌ์—์„œ 68151๊ฐœ์ธ ๋‹ต์„ 4707๊ฐœ๋งŒ ์ฐพ๋Š”๋‹ค. ์˜ฎ๊ธด ํŒ์€ ๊ณ ์นœ C์™€ ๋งˆ๋””์™€ mems๊นŒ์ง€ ๋ฐ”์ดํŠธ ํ•˜๋‚˜ ๋‹ค๋ฅด์ง€ ์•Š๊ณ , ๊ฐ€์ง€์น˜๊ธฐ ์žฅ์น˜๋ฅผ ์ „ํ˜€ ํ•จ๊ป˜ ์“ฐ์ง€ ์•Š๋Š” ๋…๋ฆฝ ๊ฒ€์‚ฌ๊ธฐ๋„ ๊ฐ™์€ 68151๊ฐœ๋ฅผ ์ฐพ๋Š”๋‹ค.
  • back-warnsdorf.w โ€” ๋‚˜์ดํŠธ ํˆฌ์–ด๋ฅผ ์ฐพ๋Š” ๋ฐ”๋ฅธ์Šค๋„๋ฅดํ”„ ๊ทœ์น™(๋Š˜ ๋ฎ์ด์ง€ ์•Š์€ ์ด์›ƒ์ด ๊ฐ€์žฅ ์ ์€ ์ด์›ƒ์œผ๋กœ ๊ฐ„๋‹ค)์„ ๋”ฐ๋ผ ๊ฑธ์„ ์ˆ˜ ์žˆ๋Š” ๊ธธ์„ ๋™๋ฅ ์˜ ๊ฐˆ๋ฆผ๊นŒ์ง€ ๋ชจ๋‘ ํ›‘๋Š”๋‹ค. ๊ทธ๋ž˜ํ”„๋Š” go-sgb์˜ gbsave๋กœ ์ฝ๋Š”๋‹ค. ๊ธธ๋งˆ๋‹ค ๋™๋ฅ ์„ ๋ฌด์ž‘์œ„๋กœ ๊นจ๋Š” ๊ฑธ์Œ์ด ๊ฑฐ๊ธฐ ๋‹ฟ์„ ํ™•๋ฅ ์„ ์…ˆํ•˜๋‹ˆ, ์ด๋ฅผํ…Œ๋ฉด 8ร—8 ํŒ์—์„œ๋Š” ์–ด๋А ์นธ์—์„œ ๋– ๋‚˜๋“  97โ€“99ํผ์„ผํŠธ์˜ ํ™•๋ฅ ๋กœ ํˆฌ์–ด๋ฅผ ์–ป๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋ฐ”๋ผ๋Š” ๋ ๊ผญ์ง“์ ์„ ์ ์–ด ๋‹ซํžŒ ํˆฌ์–ด๋ฅผ ๋…ธ๋ฆด ์ˆ˜๋„ ์žˆ๊ณ , ๊ฐ™์€ ๊ผญ์ง“์ ์„ ๋‘ ๋ฒˆ ์ ์œผ๋ฉด ๊ทธ๊ฒƒ์€ ๋ง‰๋‹ค๋ฅธ ๋งˆ์ง€๋ง‰ ์นธ์œผ๋กœ๋งŒ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. ์˜ฎ๊ธฐ๋‹ค๊ฐ€ ๊ฒฐํ•จ์„ ํ•˜๋‚˜ ๋งŒ๋‚ฌ๋‹ค. ํ›„๋ณด ์Šคํƒ์ด 1000์นธ์œผ๋กœ ๊ณ ์ •์ด๋ผ ๊ผญ์ง“์ ์ด 1000๊ฐœ์— ๊ฐ€๊นŒ์šด ๊ทธ๋ž˜ํ”„์—์„œ ๋„˜์น˜๋Š”๋ฐ(3ร—330 ๊ฒฉ์ž๋Š” ๋ฉ€์ฉกํžˆ ๋๋‚˜๋ฉด์„œ 1319์นธ์„ ์“ด๋‹ค), ์˜ฎ๊ธด ํŒ์€ ์Šคํƒ์„ ํ˜ธ์˜ ์ˆ˜๋งŒํผ ์žก๋Š”๋‹ค. ์›๋ณธ๊ณผ 450๊ฐ€์ง€ ๊ฒฝ์šฐ์—์„œ ์ถœ๋ ฅ๊ณผ ์ข…๋ฃŒ ๋ถ€ํ˜ธ๊ฐ€ ๋ฐ”์ดํŠธ๊นŒ์ง€ ๊ฐ™๋‹ค.
  • canonize-bidigraph.w โ€” ์–‘๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„(๋ณ€์˜ ์–‘ ๋์— ๋ฐฉํ–ฅ ๊ธฐํ˜ธ <๋‚˜ >๊ฐ€ ๋ถ™๋Š” ๊ทธ๋ž˜ํ”„)์˜ ๊ผญ์ง“์  ๋ช‡ ๊ฐœ๋ฅผ ๋’ค์ง‘์–ด, ์ธ์ ‘ ํ–‰๋ ฌ์˜ ๋Œ€๊ฐ์„ ๊ณผ ๊ทธ ์œ„๋ฅผ ๋„ค ๋น„ํŠธ ๋ถ€ํ˜ธ๋กœ ๋Š˜์–ด๋†“์€ ์—ด์ด ์‚ฌ์ „์‹์œผ๋กœ ๊ฐ€์žฅ ํฌ๊ฒŒ ๋˜๋„๋ก ํ•˜๋Š” ์ •๊ทœํ˜•์„ ๊ตฌํ•œ๋‹ค. ๊ทธ๋ž˜ํ”„๋Š” go-sgb์˜ gbsave๋กœ ์ฝ๊ณ  ์“ด๋‹ค. ์˜ฎ๊ธฐ๋‹ค๊ฐ€ ์›๋ณธ(2026๋…„ 1์›”)์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ๊ฒฐํ•จ ๋‘˜์„ ์ฐพ์•˜๋‹ค. ๋‘ ๊ฐ€์ง€๊ฐ€ ๋™๋ฅ ์ธ ๋ฌด๋Šฌ ๋„ท์—์„œ j์™€ k๊ฐ€ ๋’ค๋ฐ”๋€Œ์–ด ์žˆ๊ณ , ์ž์œ ๋กญ์ง€ ์•Š์€ ๊ผญ์ง“์ ์„ ์ž์œ ๋กญ๋‹ค๋ฉฐ ์•ž์งˆ๋Ÿฌ ์ •ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๋’ค์ง‘๊ธฐ๋กœ ์˜ค๊ฐ€๋Š” ๋‘ ๊ทธ๋ž˜ํ”„๊ฐ€ ๋‹ค๋ฅธ "์ •๊ทœํ˜•"์„ ์–ป๋Š”๋‹ค. ์˜ฎ๊ธด ํŒ์€ ์•ž์˜ ๊ฒƒ์„ ๋ฐ”๋กœ์žก๊ณ , ๋’ค์˜ ๊ฒƒ์€ ๋”ฐ๋ฆ„ ๊ด€๊ณ„๋ฅผ ์ง์„ ๊ธฐ์–ตํ•˜๋Š” ํ•ฉ์ง‘ํ•ฉ-์ฐพ๊ธฐ๋กœ ํ–‰์„ ๋„˜๊ฒจ ๋“ค๊ณ  ๊ฐ€์„œ ๊ณ ์นœ๋‹ค. ๊ฒฐํ•จ์ด ๊ฑธ๋ฆฌ์ง€ ์•Š๋Š” 1045๊ฐ€์ง€์—์„œ๋Š” ์›๋ณธ๊ณผ ํ‘œ์ค€ ์˜ค๋ฅ˜๊นŒ์ง€ ๋ฐ”์ดํŠธ๊ฐ€ ๊ฐ™๊ณ , ๊ฑธ๋ฆฌ๋Š” ๊ฒƒ์—์„œ๋Š” ์ถœ๋ ฅ์ด ์ „์ˆ˜ ํƒ์ƒ‰์˜ ์‚ฌ์ „์‹ ์ตœ๋Œ“๊ฐ’๊ณผ ๊ฐ™๋‹ค. ์œ ํ–ฅ ๊ทธ๋ž˜ํ”„์˜ ์ •๊ทœํ˜•์ด ์œ ํ–ฅ์ด๋ผ๋Š” ํฌ๋ˆ„์Šค์˜ ์ฃผ์žฅ์€ ๋„ค ๊ผญ์ง“์  ๋ฐ˜๋ก€๋กœ ํ‹€๋ ธ์Œ์„ ๋ณด์ธ๋‹ค. ์ด๋ฆ„์ด 150์ž๋ฅผ ๋„˜์œผ๋ฉด sprintf๊ฐ€ ๋„˜์น˜๋Š” ๊ฒฐํ•จ๋„ ์ ์—ˆ๋‹ค. ๊ทธ ๊น€์— go-sgb์˜ SaveGraph๊ฐ€ 154์ž๋ฅผ ๋„˜๋Š” ์ด๋ฆ„์„ ์ž๋ฅด์ง€ ์•Š์•„ C SGB๊ฐ€ ์ฝ์ง€ ๋ชปํ•˜๋Š” ํŒŒ์ผ์„ ์“ฐ๋˜ ๊ฒƒ๋„ go-sgb ์ชฝ์—์„œ ๊ณ ์ณค๋‹ค. MetaPost ๊ทธ๋ฆผ ํ•˜๋‚˜.
  • commafree-eastman.w โ€” ์ด์ŠคํŠธ๋จผ์˜ 1965๋…„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ์“ด ๊ฒƒ์ด๋‹ค. ๊ธธ์ด๊ฐ€ ํ™€์ˆ˜์ด๊ณ  ์ œ ์ˆœํ™˜ ์ด๋™ ๊ฐ€์šด๋ฐ ์–ด๋А ๊ฒƒ๊ณผ๋„ ๊ฐ™์ง€ ์•Š์€ ์ˆ˜์—ด์ด ์ฃผ์–ด์ง€๋ฉด, ๊ณ ๋ฅธ ์ด๋™๋“ค์ด ์‰ผํ‘œ ์—†๋Š” ๋ถ€ํ˜ธ๋ฅผ ์ด๋ฃจ๋„๋ก ์ด๋™ ํ•˜๋‚˜๋ฅผ ๊ณ ๋ฅธ๋‹ค. ๊ณจ๋กฌ๊ณผ ๊ณ ๋“ ๊ณผ ์›ฐ์น˜์˜ ์ถ”์ธก์„ ๋งค๋“ญ์ง€์€ ๊ตฌ์„ฑ์ด๋‹ค. ๋‚ฑ๋ง์€ ๊ฒฝ๊ณ„ ํ‘œ์‹œ๋กœ ๋ถ€๋ถ„ ๋‚ฑ๋ง๋กœ ์ž˜๋ฆฌ๊ณ , ๋‹จ๊ณ„๋งˆ๋‹ค ์ด์›ƒํ•œ ๋ถ„์ง€(๋„ค๋ฐ”๋‹ค์—์„œ ์˜จ ์šฉ์–ด๋Š” ํฌ๋ˆ„์Šค์˜ ๊ฒƒ์ด๋‹ค) ์‚ฌ์ด์˜ ๊ธธ์ด๊ฐ€ ํ™€์ˆ˜์ธ ๊ตฌ๊ฐ„๋งˆ๋‹ค ํ‘œ์‹œ๋ฅผ ๋”ฑ ํ•˜๋‚˜๋งŒ ๋‚จ๊ธด๋‹ค. ๊ทธ๋ž˜์„œ โŒŠlogโ‚ƒ nโŒ‹ ๋‹จ๊ณ„๋ฉด ๋„‰๋„‰ํ•˜๋‹ค. CWEB ์›๋ณธ๊ณผ 26830๋ฒˆ์˜ ์‹คํ–‰์—์„œ ๋งž์ถฐ ๋ณด์•˜๋‹ค. ๋‘์„ธ ๊ธ€์ž ์•ŒํŒŒ๋ฒณ ์œ„์˜ ๊ธธ์ด 3, 5, 7, 9์ธ ์ˆ˜์—ด ๋ชจ๋‘์™€ ๊ธธ์ด 105๊นŒ์ง€์˜ ๋ฌด์ž‘์œ„ ์ˆ˜์—ด 4000๊ฐœ์ธ๋ฐ, ์ผ๋ถ€๋Ÿฌ ๋‹ค๋ฅด๊ฒŒ ํ•œ ๊ฒƒ์ด ํ•˜๋‚˜ ์žˆ๋‹ค. ํ•จ์ˆ˜ strconv.Atoi๋Š” sscanf("%d")๊ฐ€ ์กฐ์šฉํžˆ ๋ฐ›์•„๋“ค์ด๋˜ ๋’ค์ชฝ ์“ฐ๋ ˆ๊ธฐ๋ฅผ ๊ฑฐ์ ˆํ•œ๋‹ค. MetaPost ๊ทธ๋ฆผ ํ•˜๋‚˜.
  • dlx-pre.w โ€” ์ •ํ™•ํ•œ ๋ฎ๊ฐœ ์—ฐ์ž‘์˜ ์ „์ฒ˜๋ฆฌ๊ธฐ๋‹ค. ์ž…๋ ฅ .dlx ๋ฌธ์ œ๋ฅผ ์ฝ์–ด ์“ธ๋ฐ์—†๋Š” ์„ ํƒ์ง€์™€ ํ•ญ๋ชฉ์„ ๋œ์–ด ๋‚ธ ๊ฐ™์€ ๊ฐ’์˜ ๋ฌธ์ œ๋ฅผ ์จ ๋‚ธ๋‹ค. ๊ทœ์น™ ๋‘˜์ด ์ผ์„ ํ•œ๋‹ค. ์ฃผ ํ•ญ๋ชฉ p๋ฅผ ๋‹ด์€ ์„ ํƒ์ง€๊ฐ€ ๋ชจ๋‘ ์ƒ‰ ์—†๋Š” c๋„ ๋‹ด๊ณ  ์žˆ์œผ๋ฉด c์™€, p ์—†์ด c๋ฅผ ๋‹ด์€ ์„ ํƒ์ง€๋ฅผ ๋ชจ๋‘ ๋ฒ„๋ฆด ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  p๋ฅผ ๋‹ด์€ ์„ ํƒ์ง€๊ฐ€ ๋ชจ๋‘ ์„ ํƒ์ง€ r๊ณผ ๋ถ€๋”ชํžˆ๋ฉด r์„ ๋ฒ„๋ฆด ์ˆ˜ ์žˆ๋‹ค. ์ด๊ฒƒ์„ ์ถค์ถ”๋Š” ๋งํฌ ๊ตฌ์กฐ์—์„œ ํ•ญ๋ชฉ์„ ํ•˜๋‚˜์”ฉ ์ˆจ๊ธฐ๋ฉฐ ์ ์šฉํ•˜๋Š”๋ฐ, ๋ณด์กฐ ํ‘œ๋Š” ์—†์–ด๋„ ๋œ๋‹ค. ์ด์ค‘ ์—ฐ๊ฒฐ ๋ชฉ๋ก์—์„œ ๋น ์ ธ๋‚˜์˜จ ๋งˆ๋””๋Š” ์ œ ์ด์›ƒ์„ ์—ฌ์ „ํžˆ ๊ธฐ์–ตํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์˜ฎ๊ธธ ๋•Œ ๋งค๋“ญ์€ ํฌ๋ˆ„์Šค๊ฐ€ ์ž๋ž‘์Šค๋Ÿฌ์›Œํ•œ goto๋‹ค. ๋ง‰ํžŒ ํ•ญ๋ชฉ์„ ๋งŒ๋‚˜๋ฉด ์ˆจ๊ธฐ๋Š” ๋ฐ˜๋ณต๋ฌธ์—์„œ ๋น ์ ธ๋‚˜์™€ ๋˜๋Œ๋ฆฌ๋Š” ๋ฐ˜๋ณต๋ฌธ์˜ ํ•œ๊ฐ€์šด๋ฐ๋กœ ๋›ฐ์–ด๋“œ๋Š”๋ฐ, ๊ทธ๊ฐ€ "goto ๋ฌธ์„ ์“ฐ๋Š” ๊ตฌ์กฐ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ"(1974)์—์„œ ์˜นํ˜ธํ•œ ๋ฐ”๋กœ ๊ทธ ๊ธฐ๋ฒ•์ด๋‹ค. Go๋Š” ๋ธ”๋ก ์•ˆ์œผ๋กœ ๋›ฐ์–ด๋“ค ์ˆ˜ ์—†์œผ๋ฏ€๋กœ blocked ํ”Œ๋ž˜๊ทธ์™€ ์ด๋ฆ„ํ‘œ ๋ถ™์€ break๋กœ ํ๋ฆ„์„ ๊ทธ๋Œ€๋กœ ๋˜์‚ด๋ ธ๋‹ค. CWEB ์›๋ณธ๊ณผ ๋งž์ถฐ ๋ณด์•˜๊ณ (ํ‘œ์ค€ ์ถœ๋ ฅ์ด ๋ฐ”์ดํŠธ๊นŒ์ง€ ๊ฐ™๊ณ  mems์™€ ์ž์„ธํ•œ ๊ธฐ๋ก๋„ ๊ฐ™๋‹ค), ์ƒ์„ฑํ•œ ๋ฌธ์ œ 612๊ฐœ์— ๋Œ€ํ•œ 2496๋ฒˆ์˜ ์‹คํ–‰๊ณผ dancing-cells์˜ ํŽœํ† ๋ฏธ๋…ธยทํ•„๋กœ๋ฏธ๋…ธ ํŒ, ๊ทธ๋ฆฌ๊ณ  ํŒจ๋‹‰์œผ๋กœ ๋๋‚˜๋Š” ๋ชจ๋“  ๊ธธ์„ ํ•ด ๋ณด์•˜๋‹ค. ๋ฌธ์„œ๋Š” ์›๋ณธ ยง3์˜ ๋ฏธ๋„๋Ÿฌ์ง ๋‘˜๋„ ์ ์–ด ๋‘”๋‹ค. ๋ณด๊ธฐ ์ถœ๋ ฅ์ด E ์ž๋ฆฌ์— C๋ฅผ ๋ณด์ด๊ณ , ํ”„๋กœ๊ทธ๋žจ์ด ์ฐ์ง€ ์•Š๋Š” |๊ฐ€ ๋“ค์–ด ์žˆ๋‹ค.
  • dragon-calc.w โ€” ๋ฐํ‚น์˜ ์ผ๋ฐ˜ํ™”๋œ ์šฉ ๊ณก์„ ๊ณผ, ๊ทธ์˜ ๋‹ค์ด์•„๋ชฌ๋“œ์™€ ์šฉ ๋…ธํŠธ์— ๋‚˜์˜ค๋Š” ํƒ€์ผ ๊ณ„์‚ฐ์„ ์œ„ํ•œ ๋Œ€ํ™”ํ˜• ๊ณ„์‚ฐ๊ธฐ๋‹ค. ๊ธ€์ž D์™€ U๋กœ ๋œ ์ ‘๊ธฐ ์ˆ˜์—ด, ๊ณก์„ ์„ ๋‘ ๋ฐฐ(๋˜๋Š” ๋‹ค์„ฏ ๋ฐฐ)๋กœ ๋งŒ๋“œ๋Š” ์ ‘๊ธฐ ๊ณฑ, ์ขŒํ‘œ์˜ ํ•ฉ์ด ํ™€์ˆ˜์ธ ๊ฐ€์šฐ์Šค ์ •์ˆ˜๋กœ์„œ์˜ ํƒ€์ผ, ํ—ˆ์ˆ˜๋ถ€์— ์œ ํด๋ฆฌ๋“œ๋ฅผ ๋Œ๋ ค ์–ป์€ ์—๋ฅด๋ฏธํŠธ ํ‘œ์ค€ํ˜• ๊ธฐ์ €๋กœ ๋‚˜๋ˆˆ (2+2i)z์— ๋Œ€ํ•œ ํ•ฉ๋™๋ฅ˜, ํ‰๋ฉด์„ ์ฑ„์šฐ๋Š” ๊ฒฝ๋กœ ์œ„์—์„œ์˜ ํƒ€์ผ ์ธ์ˆ˜๋ถ„ํ•ด, ๊ทธ๋ฆฌ๊ณ  MetaPost ์ถœ๋ ฅ. ํฌ๋ˆ„์Šค์˜ 2010๋…„ CWEB ํ”„๋กœ๊ทธ๋žจ์„ Go/GWEB์œผ๋กœ ์˜ฎ๊ธด ๊ฒƒ์œผ๋กœ, ๋‹ต์ด ์›๋ณธ๊ณผ ์ค„ ๋‹จ์œ„๋กœ ๊ฐ™๋‹ค. ์›๋ณธ์—์„œ goto์˜ ๊ฑฐ๋ฏธ์ค„์€ ์ด๋ฆ„ํ‘œ ๋ถ™์€ ๋ฐ˜๋ณต๋ฌธ์ด ๋˜์—ˆ๊ณ , 134 MB์งœ๋ฆฌ ์ •์  ํ‘œ๋Š” ํ•„์š”ํ•œ ๋งŒํผ๋งŒ ์žก๋Š” ๊ฒƒ์ด ๋˜์—ˆ๊ณ , ๋‹ซํžŒ ๊ฒฝ๋กœ์—์„œ ๋‚˜๋˜ 0์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ๋Š” ์ด์ œ ๊ฑธ๋Ÿฌ ๋‚ธ๋‹ค. MetaPost ๊ทธ๋ฆผ ๋‘˜.
  • dynabidiham.w โ€” dynaham.w์˜ ์–‘๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„ํŒ์œผ๋กœ, ์ฒ˜์Œ m๊ฐœ ๋งˆ๋””๋กœ ๋œ ์œ ๋„ ๋ถ€๋ถ„๊ทธ๋ž˜ํ”„๋งˆ๋‹ค ํ•ด๋ฐ€ํ„ด ํšŒ๋กœ์˜ ์ˆ˜๋ฅผ ์„ผ๋‹ค. Weigel์ด ์“ฐ๊ณ  ํฌ๋ˆ„์Šค๊ฐ€ ๋‹ค๋“ฌ์€ ๊ฒƒ์œผ๋กœ, dynadiham.w์˜ ๋ฐ”ํƒ•์ด๋‹ค. ๋ณ€์˜ ๊ฐ€์ง€๋Š” ํ˜ธ ๊ธธ์ด mod 4๋กœ ์ฝ๊ณ  ๋น ์ง„ ์ง ํ˜ธ๋งŒ ์ฑ„์šด๋‹ค. ํ•œ ๋ถ€๋ถ„๊ฒฝ๋กœ์˜ ๋‘ ๋์ด ๊ฐ™์€ ์ข…๋ฅ˜์ผ ์ˆ˜ ์žˆ์–ด ํŠธ๋ผ์ด๊ฐ€ ๋์ ๋งˆ๋‹ค ์ƒ˜๊ณผ ์‹ฑํฌ ๋‘ ์นธ์„ ๋‘”๋‹ค. dynadiham.w์™€ ๊ฐ™์€ ๊ฒฐํ•จ ๋‘˜(oldmem ๋„˜์นจ ๊ฒ€์‚ฌ, ๋งˆ๋”” ์—†๋Š” ๊ทธ๋ž˜ํ”„)์„ ๊ณ ์ณค๊ณ , ๊ฐ™์€ ๊ฐ€์ง€์˜ ๋ณ€์„ ๋‘ ๋ฒˆ ์ ์œผ๋ฉด ์ ์€ ์ชฝ์— ๋”ฐ๋ผ ์…ˆ์ด ๋‹ฌ๋ผ์ง€๋Š” ๋ช…์„ธ ๋ฐ–์˜ ํ‹ˆ์„ ์ ์–ด ๋‘์—ˆ๋‹ค. ๊ณ ์นœ CWEB ์›๋ณธ๊ณผ ๊ทธ๋ž˜ํ”„ 82๊ฐœ์—์„œ ๋ฐ”์ดํŠธ๊นŒ์ง€ ๊ฐ™๋‹ค.
  • dynadiham.w โ€” dynaham.w์˜ ์œ ํ–ฅํŒ์œผ๋กœ, ์ฒ˜์Œ m๊ฐœ ๋งˆ๋””๋กœ ๋œ ์œ ๋„ ๋ถ€๋ถ„๊ทธ๋ž˜ํ”„๋งˆ๋‹ค ์œ ํ–ฅ ํ•ด๋ฐ€ํ„ด ํšŒ๋กœ์˜ ์ˆ˜๋ฅผ ์„ผ๋‹ค. Weigel๊ณผ ํฌ๋ˆ„์Šค์˜ DYNABIDIHAM์—์„œ ์™”๋‹ค. ํ˜ธ๋งˆ๋‹ค ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ์˜ ์ง ํ˜ธ๋ฅผ ๊ธธ์ด ํ‘œ์‹œ(4l+1, 4l+3)๋กœ ๋„ฃ์–ด ์–‘๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„๋กœ ๋ฐ”๊พธ๊ณ , ๋ฐ”๊นฅ ๋งˆ๋””๋ฅผ ์ƒ˜๊ณผ ์‹ฑํฌ๋กœ ๊ฐˆ๋ผ ๋ถ€ํ˜ธ 2j+[์ƒ˜]์œผ๋กœ ์ ๋Š”๋‹ค. ์›๋ณธ์€ ์ œ ๊ณ ๋ฆฌ๋ฅผ ๊ฑฐ์ ˆํ•˜๊ณ  ํ˜ธ๊ฐ€ ์…‹ ๋ถ™๋Š” ๊ฒฝ์šฐ๋„ ๊ฑธ๋Ÿฌ์„œ, dynaham.w์˜ ๊ฒฐํ•จ ๋„ท ๊ฐ€์šด๋ฐ ๋‘˜(oldmem ๋„˜์นจ ๊ฒ€์‚ฌ, ๋งˆ๋”” ์—†๋Š” ๊ทธ๋ž˜ํ”„)๋งŒ ๋‚จ์•„ ๊ณ ์ณค๋‹ค. ์ „์ˆ˜ ์…ˆ๊ณผ ๊ทธ๋ž˜ํ”„ 37๊ฐœ์—์„œ ๋งž์ถฐ ๋ณด์•˜๊ณ , ๊ณ ์นœ CWEB ์›๋ณธ๊ณผ ๊ทธ๋ž˜ํ”„ 114๊ฐœ์—์„œ ๋ฐ”์ดํŠธ๊นŒ์ง€ ๊ฐ™๋‹ค.
  • dynaham.w โ€” ๊ทธ๋ž˜ํ”„์˜ ์ฒ˜์Œ m๊ฐœ ๋งˆ๋””๋กœ ๋œ ์œ ๋„ ๋ถ€๋ถ„๊ทธ๋ž˜ํ”„๋งˆ๋‹ค ํ•ด๋ฐ€ํ„ด ํšŒ๋กœ์˜ ์ˆ˜๋ฅผ m=1, 2, โ€ฆ, n์— ๊ฑธ์ณ ํ•œ๊บผ๋ฒˆ์— ์„ผ๋‹ค. ss*ham ์—ฐ์ž‘๊ณผ ๋‹ฌ๋ฆฌ ๋˜์ถ”์ ์œผ๋กœ ํšŒ๋กœ๋ฅผ ๋Š˜์–ด๋†“์ง€ ์•Š๋Š”๋‹ค. ๊ฒฝ๊ณ„์˜ ๋ชจ์–‘์œผ๋กœ ๋ฌถ์€ ๋ถ€๋ถ„ ๊ฒฝ๋กœ ์งœ์ž„์˜ ๋™์น˜๋ฅ˜๋งˆ๋‹ค ์ˆ˜๋งŒ ๋“ค๊ณ  ๊ฐ€๋Š” ๋™์  ๊ณ„ํš๋ฒ•์ด๋‹ค. ๋™์น˜๋ฅ˜๋Š” ๋ช‡ ๋น„ํŠธ๋กœ ์••์ถ•ํ•˜๋Š” ํŠธ๋ผ์ด์— ๋‹ด๋Š”๋‹ค. ๋‚˜์ดํŠธ ํŒ์„ ์—ด ์ˆœ์„œ๋กœ ๋งค๊ธฐ๋ฉด 3ร—40, 5ร—16, 6ร—12, 7ร—8 ํŒ์˜ ๋‹ซํžŒ ํˆฌ์–ด ์ˆ˜๊ฐ€ OEIS์™€ ๋งž๋Š”๋‹ค. ์›๋ณธ์˜ ๊ฒฐํ•จ ๋„ท์„ ๊ณ ์ณค๋‹ค. ๊ฒน์นœ ๋ณ€๊ณผ ์ œ ๊ณ ๋ฆฌ๊ฐ€ ์žˆ์œผ๋ฉด ํ‹€๋ฆฐ ์ˆ˜๋ฅผ ๋‚ด๊ฑฐ๋‚˜ ์ฃฝ๋Š” ๊ฒƒ, ์••์ถ• ํŠธ๋ผ์ด ๋„˜์นจ์„ ๋ฐ”์ดํŠธ์™€ ๋‚ฑ๋ง์„ ํ—ท๊ฐˆ๋ ค ๋†“์น˜๋Š” ๊ฒƒ, ๋งˆ๋”” ์—†๋Š” ๊ทธ๋ž˜ํ”„์—์„œ ์ฃฝ๋Š” ๊ฒƒ์ด๋‹ค. ์ „์ˆ˜ ์…ˆ๊ณผ ๊ทธ๋ž˜ํ”„ 107๊ฐœ์—์„œ ๋งž์ถฐ ๋ณด์•˜๊ณ , ๊ณ ์นœ CWEB ์›๋ณธ๊ณผ๋Š” ๊ทธ๋ž˜ํ”„ 194๊ฐœ์—์„œ ๋ฐ”์ดํŠธ๊นŒ์ง€ ๊ฐ™๋‹ค. MetaPost ๊ทธ๋ฆผ ํ•˜๋‚˜.
  • dynahamp.w โ€” dynaham.w์˜ ๊ฒฝ๋กœํŒ์œผ๋กœ, ์ฒ˜์Œ m๊ฐœ ๋งˆ๋””๋กœ ๋œ ์œ ๋„ ๋ถ€๋ถ„๊ทธ๋ž˜ํ”„๋งˆ๋‹ค ํ•ด๋ฐ€ํ„ด ๊ฒฝ๋กœ์˜ ์ˆ˜๋ฅผ ์„ผ๋‹ค. ๋ชจ๋“  ๋งˆ๋””์— ์ด์›ƒํ•œ ์ƒˆ ๋งˆ๋”” !๋ฅผ ๋ณดํƒ  Gโบ์˜ ํ•ด๋ฐ€ํ„ด ํšŒ๋กœ๋กœ ๋ฐ”๊พธ์–ด ์„ผ๋‹ค. ๋‚˜์ดํŠธ ํŒ์„ ์—ด ์ˆœ์„œ๋กœ ๋งค๊ธฐ๋ฉด ์—ด๋ฆฐ ํˆฌ์–ด ์ˆ˜๊ฐ€ ๋‚˜์˜จ๋‹ค(6ร—6 ํŒ์—์„œ 3318960, ๋ฐฉํ–ฅ๊นŒ์ง€ ์„ผ 6637920์˜ ์ ˆ๋ฐ˜). dynaham.w์—์„œ ๊ณ ์นœ ์›๋ณธ์˜ ๊ฒฐํ•จ ๋„ท์ด ๊ทธ๋Œ€๋กœ ์žˆ์–ด ๋˜‘๊ฐ™์ด ๊ณ ์ณค๋‹ค. ์ „์ˆ˜ ์…ˆ๊ณผ ๊ทธ๋ž˜ํ”„ 105๊ฐœ์—์„œ ๋งž์ถฐ ๋ณด์•˜๊ณ , ๊ณ ์นœ CWEB ์›๋ณธ๊ณผ ๊ทธ๋ž˜ํ”„ 193๊ฐœ์—์„œ ๋ฐ”์ดํŠธ๊นŒ์ง€ ๊ฐ™๋‹ค. MetaPost ๊ทธ๋ฆผ ํ•˜๋‚˜.
  • enigmatic-puzzle.w โ€” TAOCP 7.2.2.8์— ๋‚˜์˜ค๋Š” 125๊ธ€์ž์งœ๋ฆฌ ์—๋‹ˆ๊ทธ๋งˆ ์•”ํ˜ธ๋ฌธ์„ ๊นฌ๋‹ค. ์•”ํ˜ธ๋ฌธ๊ณผ ํฌ๋ฆฝ ๋‚ฑ๋ง ํ•˜๋‚˜(ENIGMATICALLY)๋งŒ ๊ฐ€์ง€๊ณ  ํšŒ์ „์ž์˜ ์„ ํƒ๊ณผ ์ˆœ์„œ, ๋ง ์„ค์ •, ์‹œ์ž‘ ์œ„์น˜, ํ”Œ๋Ÿฌ๊ทธํŒ, ๊ทธ๋ฆฌ๊ณ  ํ‰๋ฌธ์„ ๋˜์ฐพ๋Š”๋‹ค. ํฌ๋ˆ„์Šค์˜ ํ”„๋กœ๊ทธ๋žจ ๋‹ค์„ฏ ๊ฐœ๋ฅผ ์—ฌ๊ธฐ์„œ ํ•˜๋‚˜์˜ ํŒŒ์ดํ”„๋ผ์ธ์œผ๋กœ ์—ฎ์—ˆ์œผ๋ฏ€๋กœ ๋ฌธ์„œ๋Š” ๊ทธ๊ฒƒ๋“ค์„ ๋ชจ๋‘ ํ›‘๋Š”๋‹ค. ๊ธฐ๊ณ„ ์ž์ฒด(๋‹ค์„ฏ ๊ฐ€์šด๋ฐ ํšŒ์ „์ž ์…‹, ๋ฐ˜์‚ฌ๊ธฐ B, ์ด์ค‘ ์ „์ง„์˜ ๋ฒ„๋ฆ‡, ๊ทธ๋ฆฌ๊ณ  ์–ด๋–ค ๊ธ€์ž๋„ ์ž๊ธฐ ์ž์‹ ์œผ๋กœ ์•”ํ˜ธํ™”๋˜์ง€ ์•Š๋Š” ์น˜๋ช…์  ํ  โ€” ์ด ํ•œ ์ค„์ด ํฌ๋ฆฝ ์œ„์น˜ 113๊ฐœ ๊ฐ€์šด๋ฐ 50๊ฐœ๋ฅผ ์ฃฝ์ธ๋‹ค), ํšŒ์ „์ž๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋Œ์•˜๋Š”์ง€๋งŒ ์ข‡์•„ ๋ชจ๋ฅด๋Š” ๋ง ์„ค์ •์„ ๋น„๊ปด๊ฐ€๊ณ  k์ธต์— ๋งˆ๋””๊ฐ€ ์ •ํ™•ํžˆ 2k+1๊ฐœ์ธ ๋ธํƒ€ ๋‚˜๋ฌด, ์ˆœ์„œ ์—†๋Š” ๊ธ€์ž ์Œ 351๊ฐœ ์œ„์˜ ์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ์ธ ๋ด„๋ฒ (์Œ์„ ์ˆœ์„œ ์—†์ด ๋‹ค๋ฃจ๋Š” ๊ฒƒ์ด ๊ณง ์›ฐ์น˜๋จผ์˜ ๋Œ€๊ฐ ํŒ์ด๋‹ค), ๊ฐ•์ œ๋œ ๋ฅ˜๋ฅผ ๋ชจ๋‘ ํ•˜๋‚˜์˜ ๊ฑฐ๋Œ€ํ•œ ๋ฅ˜๋กœ ํ•ฉ์น˜๋Š” ๊ฐœ์„ ๋œ ๊ฑฐ๋ฅด๊ฐœ, ์‚ด์•„๋‚จ์€ ๋ฅ˜์™€ ์–ด๊ธ‹๋‚˜์ง€ ์•Š๋Š” ํ”Œ๋Ÿฌ๊ทธํŒ์„ ๋ชจ๋‘ ๋Š˜์–ด๋†“๋Š” ๊ฐ„์ถ”๋ฆฐ ๊ฐ์‹œ ๋ฆฌํ„ฐ๋Ÿด SAT ํ’€์ด๊ธฐ, ๋ธํƒ€ ๊ฒฝ๋กœ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ ์œ„์น˜์™€ ๋ง ์„ค์ •์œผ๋กœ ๋ฐ”๊พธ๋Š” ์‚ฐ์ˆ , ๊ทธ๋ฆฌ๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ ํ›„๋ณด 3,331,188๊ฐœ ๊ฐ€์šด๋ฐ ์ง„์งœ ์˜์–ด์ธ ํ•˜๋‚˜๋ฅผ ๊ณ ๋ฅด๋Š” 5-๊ทธ๋žจ ํ†ต๊ณ„๋‹ค. ์˜์–ด๊ฐ€ ๋งž๊ณ , 1653๋…„์˜ ์—ฐ๊ธˆ์ˆ  ์ฑ…์—์„œ ์™”๋‹ค. ํฌ๋ˆ„์Šค์˜ C ์›๋ณธ๊ณผ ๋ฐฑ๋งŒ ๊ฐ€์ง€ ์„ค์ •์„ ๋ชจ๋‘ ํ›‘์–ด ์ค„ ๋‹จ์œ„๋กœ ๋งž์ถฐ ๋ณด์•˜๋‹ค. ์›๋ณธ์— ์ˆจ์–ด ์žˆ๋˜ ๋ฒ„ํผ ๋ฌธ์ œ ์…‹์„ ๊ณ ์น˜๊ณ  ์„ค๋ช…ํ•ด ๋‘์—ˆ๋‹ค. ๋ฐฐ์—ด move[64]๋Š” ๋ณ€์ˆ˜ ๊ฐœ์ˆ˜๋งŒํผ ์ฒจ์ž๊ฐ€ ๋ถ™๋Š”๋ฐ, ๊ทธ๊ฒƒ์ด 64๋ฅผ ๋„˜์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํฌ๋ˆ„์Šค ์ž์‹ ์ด ์ ์–ด ๋‘์—ˆ๊ณ , ์ „์ฒด ์‹คํ–‰์ด ์ •๋ง ๊ทธ๋ ‡๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์ธ๋‹ค(max vars 79). ๋ฐฐ์—ด plugs[โ€ฆ][26]์€ ํ”Œ๋Ÿฌ๊ทธ๊ฐ€ ํ•˜๋‚˜๋„ ์—†๋Š” ํ”Œ๋Ÿฌ๊ทธํŒ์—์„œ ๋ณด์ดˆ๋ฅผ ๋‘˜ ์ž๋ฆฌ๊ฐ€ ์—†๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฆฌํ„ฐ๋Ÿด์ด ์—†๋Š” "์ ์–ด๋„ ํ•˜๋‚˜" ์ ˆ์ด ์“ฐ์ง€ ์•Š์€ ์นธ์„ ์ฝ๋Š”๋‹ค. ์—ญ์‚ฌ๋„ ํ•จ๊ป˜ ์—ฎ์—ˆ๋‹ค. ์…ฐ๋ฅด๋น„์šฐ์Šค, ๋ ˆ์˜ˆํ”„์Šคํ‚ค์™€ ํด๋ž€๋“œ์˜ ๋ด„๋ฐ”, ํ”ผ๋ฆฌ, ํŠœ๋ง, ์›ฐ์น˜๋จผ์ด๋‹ค. ์ „์ฒด ํ›‘๊ธฐ๋Š” ๊ณ ๋ฃจํ‹ด์œผ๋กœ ๋‚˜๋ˆ„์—ˆ๋‹ค. ํ”„๋กœํŒŒ์ผ์„ ๋–  ๋ณด๋‹ˆ ์‹œ๊ฐ„์˜ 72%๊ฐ€ ๋ด„๋ฒ ์˜ ์œ ๋‹ˆ์˜จ ๋‹จ๊ณ„์— ์žˆ์—ˆ๋Š”๋ฐ, ๊ฒฝ๋กœ ์••์ถ•๋„ ๋” ์ข์€ ๋ฐฐ์—ด๋„ ํ•„๋“œ ๊ตฌ์กฐ์ฒด ๋ฐฐ์น˜๋„ ๋ชจ๋‘ ์˜คํžˆ๋ ค ๋А๋ ธ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์„ค์ •๋“ค์€ ์„œ๋กœ ์•„๋ฌด๊ฒƒ๋„ ๋‚˜๋ˆ„์–ด ์“ฐ์ง€ ์•Š์œผ๋ฏ€๋กœ, ์ผ๊พผ ์—ด์ด M1 Max์—์„œ 2์‹œ๊ฐ„ 4๋ถ„ 26์ดˆ ๊ฑธ๋ฆฌ๋˜ ๊ฒƒ์„ 16๋ถ„ 10์ดˆ๋กœ ์ค„์˜€๋‹ค. ์ถœ๋ ฅ์€ ๋ฐ”์ดํŠธ๊นŒ์ง€ ๊ทธ๋Œ€๋กœ์ด๊ณ , ์—ฌ์ „ํžˆ ํ˜๋Ÿฌ๋‚˜์˜จ๋‹ค. ๋ฌด์—‡์„ ์ฐ์„์ง€๊ฐ€ ๊ทธ ์•ž์˜ ๋ชจ๋“  ๊ฒƒ์— ๋‹ฌ๋ ค ์žˆ์–ด์„œ ํ•œ ๋‹จ์œ„์˜ ์ค„์€ ์•ž์„  ๋‹จ์œ„๊ฐ€ ๋ชจ๋‘ ๋๋‚˜์•ผ ์ •ํ•ด์ง€๋ฏ€๋กœ, ์ผ๊พผ๋งˆ๋‹ค ์ฐํž ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ๋„‰๋„‰ํžˆ ๋ชจ์•„ ๋‘์—ˆ๋‹ค๊ฐ€ ๋๋‚œ ์•ž๋ถ€๋ถ„์„ ์ฐจ๋ก€๋กœ ๋‚ด๋ณด๋‚ธ๋‹ค. ํ›‘๊ธฐ๋ฅผ 60๋‹จ์œ„๊ฐ€ ์•„๋‹ˆ๋ผ 1560๋‹จ์œ„๋กœ ์ž˜๋ž๋”๋‹ˆ ์ฒซ ์ค„์ด 6.4์ดˆ ๋งŒ์— ๋‚˜์˜ค๊ณ , ๋‹จ์œ„๋งˆ๋‹ค ํšŒ์ „์ž ํ‘œ๋ฅผ ๋‹ค์‹œ ์ง“๋Š”๋ฐ๋„ ์ „์ฒด๊ฐ€ ์˜คํžˆ๋ ค ๋” ๋น ๋ฅด๋‹ค(๊ผฌ๋ฆฌ๊ฐ€ ์งง๋‹ค). ํ‘œ์ค€ ์˜ค๋ฅ˜๋กœ ๋‚˜๊ฐ€๋Š” ์ง„ํ–‰ ํ‘œ์‹œ 13์ค„๊นŒ์ง€ ๊ทธ๋Œ€๋กœ๋‹ค. MetaPost ๊ทธ๋ฆผ ๋‘˜. 5-๊ทธ๋žจ ๊ณ„์ˆ˜์—๋Š” ํฌ๋ˆ„์Šค์˜ ์›๋ฌธ์ด ํ•„์š”ํ•œ๋ฐ, ์ €์žฅ์†Œ์— VOL1TEXT.txt๋กœ ๋“ค์–ด ์žˆ๋‹ค(ํ”„๋กœ๊ทธ๋žจ์˜ ๊ธฐ๋ณธ ํŒŒ์ผ ์ด๋ฆ„์€ VOL1TEXT์ด๋ฏ€๋กœ ์…‹์งธ ์ธ์ž๋กœ ๋„˜๊ธฐ๋ฉด ๋œ๋‹ค).
  • floyd.w โ€” ํ”Œ๋กœ์ด๋“œ์˜ ๋ถ„ํ•  ๋ฌธ์ œ. ํฌ๋ˆ„์Šค๊ฐ€ *์žฅ๋‚œ๊ฐ ๋ฌธ์ œ๋Š” ์“ธ๋ชจ ์žˆ๋Š”๊ฐ€?*์—์„œ ๋‹ค๋ฃฌ ๊ณ ์ „์ ์ธ "์žฅ๋‚œ๊ฐ ๋ฌธ์ œ"๋‹ค. โˆš1โ€ฆโˆš50์„ ๊ฑฐ์˜ ๊ฐ™์€ ๋‘ ๋ชซ์œผ๋กœ ๊ฐ€๋ฅธ๋‹ค. ๋ฌธํ•™์ ์œผ๋กœ ํ‘ผ ํ’€์ด(์ค‘๊ฐ„์—์„œ ๋งŒ๋‚˜๊ธฐ ํƒ์ƒ‰, ๊ทธ๋ ˆ์ด ๋ถ€ํ˜ธ ์—ด๊ฑฐ, ๋ณด์ • ๋ง์…ˆ, ๊ทธ๋ฆฌ๊ณ  math/big ๊ฒ€์ฆ)๋‹ค.
  • grayspan.w โ€” ๊ทธ๋ž˜ํ”„์˜ ์‹ ์žฅ ๋‚˜๋ฌด๋ฅผ ๋ชจ๋‘ ๋งŒ๋“ค๋˜, ์ด์›ƒํ•œ ๋‘ ๋‚˜๋ฌด๊ฐ€ ๋ณ€ ํ•˜๋‚˜๋งŒ ๋‹ค๋ฅด๊ฒŒ ๋Š˜์–ด๋†“๋Š”๋‹ค. ๋งฌ์ปด ์Šค๋ฏธ์Šค์˜ ์„์‚ฌ ๋…ผ๋ฌธ(1997)์„ ๋ฐ”ํƒ•์œผ๋กœ ํฌ๋ˆ„์Šค๊ฐ€ "์กฐ๊ธˆ ์„œ๋‘˜๋Ÿฌ" ์ง  ๊ฒƒ์ด๋‹ค. ๊ฑฐ์˜ ๋‚˜๋ฌด์˜ ์ฒซ ๋ณ€์„ ์ค„์—ฌ ๋˜๋ถ€๋ฅด๊ณ , ๋๋‚˜๋ฉด ๊ทธ ๋ณ€์„ ์ง€์›Œ(๋‹ค๋ฆฌ๊ฐ€ ์•„๋‹ ๋•Œ๋งŒ) ๋‹ค์‹œ ๋˜๋ถ€๋ฅธ๋‹ค. ์ค„์ด๊ธฐ์™€ ํŽด๊ธฐ๋Š” ์ด์ค‘ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ์œ„์˜ ์ถค์ถ”๋Š” ๊ณ ๋ฆฌ๋กœ ํ•˜๊ณ , ๋‹ค๋ฆฌ๋Š” ์ฐจ์ˆ˜ 1๊ณผ ๋‚˜๋ž€ํ•œ ๋ณ€์ด๋ผ๋Š” ์–ด๋ฆผ ๋‘˜์— ์ด์–ด ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰์œผ๋กœ ๊ฐ€๋ฆฐ๋‹ค. ํ•œ ๋ฐ˜๋ณต๋ฌธ์—์„œ ๋‹ค๋ฅธ ๋ฐ˜๋ณต๋ฌธ ๋ชธํ†ต์œผ๋กœ ๋›ฐ์–ด๋“œ๋Š” goto๋Š” ์ฒซ ๋ฐ˜๋ณต๋ฌธ์„ ์ด๋ฆ„ํ‘œ๋กœ ํŽด์„œ ์˜ฎ๊ฒผ๋‹ค. ๋ฉ์น˜ ํฐ go-sgb ๋ ˆ์ฝ”๋“œ ๋Œ€์‹  ์ž‘์€ ๊ผญ์ง“์ ยทํ˜ธ ๊ตฌ์กฐ์ฒด๋กœ ์˜ฎ๊ฒจ ๋‹ด๋Š”๋‹ค. ์›๋ณธ์˜ ๊ฒฐํ•จ ํ•˜๋‚˜, ๊ผญ์ง“์ ์ด ์—†๋Š” ๊ทธ๋ž˜ํ”„์—์„œ ์„ธ๊ทธํดํŠธ๋กœ ์ฃฝ๋Š” ๊ฒƒ์„ ๊ณ ์ณค๋‹ค. ๊ทธ๋ž˜ํ”„ 396๊ฐœ์—์„œ ์„ธ ๊ฐ€์ง€ ์ž์„ธํ•จ์œผ๋กœ ์›๋ณธ๊ณผ ์ถœ๋ ฅยทmems๊ฐ€ ๋ฐ”์ดํŠธ๊นŒ์ง€ ๊ฐ™๊ณ , ํ–‰๋ ฌ ๋‚˜๋ฌด ์ •๋ฆฌ์™€ ๊ทธ๋ ˆ์ด ์„ฑ์งˆ๋กœ ๋”ฐ๋กœ ๊ฒ€์‚ฌํ–ˆ๋‹ค. ์ „์—ญ์ด๋˜ mems๋ฅผ ์ง€์—ญ ๋ณ€์ˆ˜๋กœ ์˜ฎ๊ธฐ์ž 1.4๋ฐฐ ๋А๋ฆฌ๋˜ ๊ฒƒ์ด ์›๋ณธ๋ณด๋‹ค 1.4๋ฐฐ ๋นจ๋ผ์กŒ๋‹ค.
  • hopcroft-karp.w โ€” ์ด๋ถ„ ๊ทธ๋ž˜ํ”„์˜ ์ตœ๋Œ€ ๋งค์นญ์„ O((t+n)ยทsqrt(m))์— ์ฐพ๋Š”๋‹ค. ํšŒ๋งˆ๋‹ค ๊ฒฝ๋กœ๋ฅผ ํ•˜๋‚˜์”ฉ ๋Š˜๋ฆฌ๋Š” ๋Œ€์‹ , ๊ผญ์ง“์ ์ด ๊ฒน์น˜์ง€ ์•Š๋Š” ์ตœ๋‹จ ์ฆ๊ฐ€ ๊ฒฝ๋กœ์˜ ๊ทน๋Œ€ ์ง‘ํ•ฉ์„ ํ•œ๊บผ๋ฒˆ์— ์ฐพ๋Š”๋‹ค. ๋ฌธ์„œ์˜ ์ ˆ๋ฐ˜์€ ์ฆ๋ช…์ด๋‹ค. ๋‘ ๋งค์นญ์˜ ๋Œ€์นญ์ฐจ๊ฐ€ ์ˆœํ™˜๊ณผ ๊ฒฝ๋กœ๋กœ ๊ฐˆ๋ผ์ง„๋‹ค๋Š” ๋ฐ์„œ ๋ฒ ๋ฅด์ฃผ์˜ ๋ณด์กฐ์ •๋ฆฌ๊ฐ€ ๋‚˜์˜ค๊ณ , ์ฆ๊ฐ€๋Š” ์„ฑ๋ถ„ ํ•˜๋‚˜๋ฅผ ์—†์• ๋ฉด์„œ ๋” ์งง์€ ๊ฒƒ์„ ๋งŒ๋“ค์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ฒฝ๋กœ ๊ธธ์ด๊ฐ€ ์—„๊ฒฉํžˆ ๋Š˜๊ณ , rํšŒ๊ฐ€ ์ง€๋‚˜๋ฉด ๋งค์นญ์ด ์ด๋ฏธ ์ตœ์ ์˜ r/(r+1)์ด๋ฏ€๋กœ ํšŒ์ˆ˜๋Š” 2ยทsqrt(s)๋กœ ๋ฌถ์ธ๋‹ค. ํฌ๋ˆ„์Šค์˜ goto enter_level๊ณผ goto advance๋Š” continue๊ฐ€ ๊ณง ์ „์ง„์ธ ๋ฐ˜๋ณต๋ฌธ ํ•˜๋‚˜๊ฐ€ ๋˜์—ˆ๋‹ค. ์›๋ณธ์— ๋‘˜์„ ๋ง๋ถ™์˜€๋‹ค. ํฌ๋ˆ„์Šค๋Š” ๊ธธ์ด 2k-1์ธ ๊ฒฝ๋กœ์˜ ๋“ฑ๊ธ‰์„ k๋กœ ์ •์˜ํ•ด ๋†“๊ณ ๋Š” ๊ทธ๋ณด๋‹ค ํ•˜๋‚˜ ์ž‘์€ final_level์„ ์ฐ๊ณ  (๋‚˜์ค‘์— ๊ทธ๊ฒƒ์„ ๋‘๊ณ  ๋…ผํ•˜๋Š”๋ฐ), ์˜ฎ๊ธด ํŒ์€ ์ •์˜๋ฅผ ํ•˜๋‚˜ ๊ณจ๋ผ ๊ทธ๋ ‡๋‹ค๊ณ  ๋ฐํžŒ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ ์‹คํŒจํ•œ ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰์ด ๊ต๋Œ€๋กœ ๋‹ฟ์„ ์ˆ˜ ์žˆ๋Š” ์ง‘ํ•ฉ์„ ์ด๋ฏธ ์…ˆํ•ด ๋‘์—ˆ์œผ๋ฏ€๋กœ, ํ”„๋กœ๊ทธ๋žจ์€ ๋งค์นญ๊ณผ ํฌ๊ธฐ๊ฐ€ ๊ฐ™์€ ์ตœ์†Œ ๊ผญ์ง“์  ๋ฎ๊ฐœ๋ฅผ ํ•จ๊ป˜ ๋‚ด๋†“์„ ์ˆ˜ ์žˆ๋‹ค. ๋‹ต์ด ์ตœ์ ์ž„์„ ๋ˆˆ์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์พจ๋‹ˆ๊ทธ ์ฆ์„œ๋‹ค. C ์›๋ณธ๊ณผ ๋ฌด์ž‘์œ„ 1200๊ฐœ์—์„œ ๋งž์ถฐ ๋ณด์•˜๋‹ค. ๋งค์นญ๊ณผ ํšŒ์ˆ˜์™€ dag์˜ ํ˜ธ๊ฐ€ ๋ชจ๋‘ ๊ฐ™๊ณ , ๋”ฐ๋กœ ๊ตฌํ˜„ํ•œ ๊ฒƒ๊ณผ๋„ ๊ต์ฐจ ํ™•์ธํ–ˆ์œผ๋ฉฐ, ๋ฎ๊ฐœ๋Š” ๋ชจ๋‘ ์˜ณ๊ณ  ํฌ๊ธฐ๋„ ์ •ํ™•ํ•˜๋‹ค. ๋งˆ์ง€๋ง‰ ์žฅ์€ ํฌ๋ˆ„์Šค๊ฐ€ ๋์— ๋‚จ๊ธด ์—ฐ์Šต ๋ฌธ์ œ, ๊ณง 1ํšŒ๋Š” ๋”ฐ๋กœ ๋น ๋ฅด๊ฒŒ ๊ตฌํ˜„ํ•  ๋งŒํ•˜๋‹ค๋Š” ์ด์•ผ๊ธฐ๋ฅผ ๋‹ค๋ฃฌ๋‹ค. ์ •๋ง ๊ทธ๋ ‡๊ณ , ๊นŒ๋‹ญ์€ 1ํšŒ์—์„œ final_level์ด ๋ฐ˜๋“œ์‹œ 0์ด๋ผ ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰์ด ๋‚ด๋ ค๊ฐ€์ง€ ์•Š๊ณ , ๊ทธ๋ž˜์„œ ๊ทธ ํšŒ ์ „์ฒด๊ฐ€ ํ˜ธ t๊ฐœ์งœ๋ฆฌ dag๋ฅผ ์ผ๋‹ค๊ฐ€ ๊ณง๋ฐ”๋กœ ๋˜์ฝ๋Š” ๋จผ ๊ธธ์„ ๋Œ์•„ ์š•์‹ฌ์Ÿ์ด ๊ทน๋Œ€ ๋งค์นญ์„ ์ง“๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด๊ฒƒ์„ ์š•์‹ฌ์Ÿ์ด ์—ฌ๋Ÿ ์ค„๋กœ ๋ฐ”๊พธ๋ฉด 1ํšŒ๊ฐ€ 4๋ฐฐ์ฏค ๋นจ๋ผ์ง€๊ณ (์‹คํ–‰ ์‹œ๊ฐ„์˜ 69%๋ฅผ ์ฐจ์ง€ํ•˜๋˜ ๊ฒƒ์ด 41%๋กœ) ๋งค์นญ ์ „์ฒด๊ฐ€ 1.6~2.3๋ฐฐ ๋นจ๋ผ์ง„๋‹ค. ๋Œ€์‹  ์‹œ์ž‘ ๋งค์นญ์ด ๋‹ฌ๋ผ์ ธ ๋‹ค์„ฏ์— ํ•˜๋‚˜์ฏค์€ ํšŒ์ˆ˜๊ฐ€ ์ด๋ฆฌ์ €๋ฆฌ ๋ฐ”๋€๋‹ค. ํ”Œ๋ž˜๊ทธ ๋’ค์— ๋‘์—ˆ์œผ๋‹ˆ ๊ธฐ๋ณธ๊ฐ’์€ ํฌ๋ˆ„์Šค์˜ ์ถœ๋ ฅ์„ ๊ทธ๋Œ€๋กœ ๋˜์‚ด๋ฆฐ๋‹ค. MetaPost ๊ทธ๋ฆผ ์…‹.
  • hyperbolic.w โ€” 36ยฐ-45ยฐ-90ยฐ ์‚ผ๊ฐํ˜•์œผ๋กœ ์Œ๊ณก ํ‰๋ฉด์„ ๋ฎ๋Š” ์œ ์ผํ•œ ํƒ€์ผ๋ง์„ ์…ˆํ•œ๋‹ค. ์ ์€ ์ƒ๋ฐ˜ ํ‰๋ฉด์— ์žˆ๊ณ , "์ง์„ "์€ ์‹ค์ถ•์— ์ค‘์‹ฌ์„ ๋‘” ๋ฐ˜์›์ด๋ฉฐ, ํƒ€์ผ๋ง ์ „์ฒด๋Š” ์‚ผ๊ฐํ˜• ํ•˜๋‚˜์—์„œ ๊ผญ์ง“์ ์„ ๋งž์€ํŽธ ๋ณ€์— ๊ฑฐ๋“ญ ๋น„์ถ”์–ด(์›์— ๋Œ€ํ•œ ๋ฐ˜์ „) ์ž๋ผ๋‚œ๋‹ค. ์ผ์„ ์‚ฌ๋ถ„ ๊ณ ๋ฆฌ ํ•˜๋‚˜๋กœ ์ค„์ด๋ฉด ํ‰๋ฉด ์ „์ฒด์— ์‚ผ๊ฐํ˜• 301๊ฐœ๋ฉด ๋„‰๋„‰ํ•œ๋ฐ, ๊ทธ ์ œํ•œ์„ ๊ณต์งœ๋กœ ๋งŒ๋“œ๋Š” ์š”๋ น์€ ์ค‘์‹ฌ์ด 0์ธ ์ˆ˜์ง "์›"์„ ๋‘๊ณ  ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๊ทธ๊ฒƒ์„ ๋„˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด ์‚ผ๊ฐํ˜• ์—ด ๊ฐœ๊ฐ€ ์ •์˜ค๊ฐํ˜•์„ ์ด๋ฃจ๋‹ˆ ๋งˆ๋ฅด๊ฒ์Šˆํ…Œ๋ฅธ์˜ ์˜ค๊ฐ ๊ฒฉ์ž๊ฐ€ ๋ชจ์Šต์„ ๋ฐ”๊พผ ๊ฒƒ์ด๊ณ , ์‹œ์ž‘ ์ขŒํ‘œ์— ํ™ฉ๊ธˆ๋น„๊ฐ€ ๋งˆ๋•…ํžˆ ๋‚˜ํƒ€๋‚œ๋‹ค. ํฌ๋ˆ„์Šค๊ฐ€ ์ด์›ƒ ์…ˆ์„ ์„ธ ๋ฒˆ ๋”ฐ๋กœ ์“ฐ๊ณ  ํ˜ธ 667๊ฐœ๋ฅผ ์†์œผ๋กœ .mp ํŒŒ์ผ์— ์˜ฎ๊ฒจ ์ ์€ ์ž๋ฆฌ์—์„œ, ์˜ฎ๊ธด GoํŒ์€ ์…‹์„ ์ฒจ์ž ๋ถ™์€ ๋ฐ˜๋ณต๋ฌธ ํ•˜๋‚˜๋กœ ์ ‘๊ณ  MetaPost๋ฅผ ์Šค์Šค๋กœ ๋ฝ‘์•„๋‚ธ๋‹ค. ํ˜ธ 667๊ฐœ๊ฐ€ ๋ชจ๋‘ ๊ทธ์˜ ๊ฒƒ๊ณผ ์ฐํžŒ ๋งˆ์ง€๋ง‰ ์ž๋ฆฌ๊นŒ์ง€ ๊ฐ™๋‹ค. ๋ฐ”ํƒ• ์ขŒํ‘œ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ณฑ์…ˆ๊ณผ ๋ง์…ˆ์„ ๋‹ค๋ฅด๊ฒŒ ์œตํ•ฉํ•˜๋Š” ํƒ“์— 3.3e-13๊นŒ์ง€ ๋‹ค๋ฅธ๋ฐ๋„ ๊ทธ๋ ‡๋‹ค. ๊ทธ๋Ÿฐ๋ฐ๋„ ๋˜‘๊ฐ™์€ ํƒ€์ผ๋ง์ด ๋‚˜์˜ค๋Š” ๊ฒƒ์ด์•ผ๋ง๋กœ ์–ด๋ฆ„ํ•œ ์ด์ง„ ํƒ์ƒ‰ ์‚ฌ์ „์„ ๋‘” ๊นŒ๋‹ญ์ด๋‹ค. MetaPost ๊ทธ๋ฆผ ๋„ท.
  • infty-queens.w โ€” ๋์—†๋Š” ์ฒด์ŠคํŒ์˜ ๊ฐ€๋กœ์ค„๋งˆ๋‹ค ์•ž์˜ ์—ฌ์™•๋“ค์—๊ฒŒ ์žกํžˆ์ง€ ์•Š๋Š” ๊ฐ€์žฅ ์™ผ์ชฝ ์นธ์— ์—ฌ์™•์„ ๋†“์•„ ๊ฐ€๋Š” ํƒ์š• ์ˆ˜์—ด(OEIS A065188)์„ ๊ณ„์‚ฐํ•œ๋‹ค. Sloane๊ณผ Shallit์ด ๋ฐํžŒ ํ™ฉ๊ธˆ๋น„ ๊ตฌ์กฐ ๋•์— ๋น„ํŠธ ๋ฒกํ„ฐ ์…‹์—์„œ ๋ช‡ ์นธ๋งŒ ๋ณด๋ฉด ๋˜๊ณ , nฯ†์˜ ๋ถ„์ˆ˜ ๋ถ€๋ถ„์„ ์Œ ํ”ผ๋ณด๋‚˜์น˜ ํ‘œํ˜„์˜ ๋น„ํŠธ ๋ฌด๋Šฌ๋กœ ๋“ค๊ณ  ๋‹ค๋‹ˆ๋ฉฐ ์–ด๊ธ‹๋‚จ์„ ์ •ํ™•ํžˆ ์žฐ๋‹ค. ํฌ๋ˆ„์Šค์˜ 2017๋…„ CWEB ํ”„๋กœ๊ทธ๋žจ์„ ์˜ฎ๊ฒผ๋‹ค. ์›๋ณธ ์ฒซ ๋ฌธ๋‹จ์˜ ์ •์˜๋Š” ์ˆ˜์—ด์„ qโ‚€๋ถ€ํ„ฐ ์„ธ์–ด ํ”„๋กœ๊ทธ๋žจ๊ณผ ์ฒจ์ž๊ฐ€ ํ•˜๋‚˜ ์–ด๊ธ‹๋‚˜๊ณ , 9ฯ†์˜ ์˜ˆ์‹œ ์‹์€ ์ฒจ์ž์™€ ๋ถ€ํ˜ธ๊ฐ€ ํ‹€๋ ค ์ ํžŒ ๋Œ€๋กœ ์…ˆํ•˜๋ฉด 5.51์ด ๋‚˜์˜ค๋Š”๋ฐ, ๋‘˜ ๋‹ค ๊ณ ์ณค๋‹ค. ์Œ์ˆ˜ n์€ ๊ฑฐ์ ˆํ•˜๊ณ , 13์–ต์ฏค์„ ๋„˜์œผ๋ฉด int๊ฐ€ ๋„˜์น˜๋˜ ๋ฐฐ์—ด ํฌ๊ธฐ๋Š” 64๋น„ํŠธ๋กœ ์…ˆํ•œ๋‹ค. ์›๋ณธ๊ณผ ์ธ์ž 317๊ฐ€์ง€ ๊ฐ€์šด๋ฐ ์ผ๋ถ€๋Ÿฌ ๊ณ ์นœ ์Œ์ˆ˜ ๋‘˜๋งŒ ๋นผ๊ณ  ๋ฐ”์ดํŠธ๊นŒ์ง€ ๊ฐ™๋‹ค. MetaPost ๊ทธ๋ฆผ ํ•˜๋‚˜.
  • koda-ruskey.w โ€” ์ˆฒ ํฌ์…‹์˜ ์ด์ƒ์„ ๋ชจ๋‘ ๋งŒ๋“ค์–ด ๋‚ธ๋‹ค. ๊ณง ๋ถ€๋ชจ๊ฐ€ 1์ผ ๋•Œ๋งŒ ์ž์‹์ด 1์ผ ์ˆ˜ ์žˆ๋Š” ๋น„ํŠธ์—ด ๋ชจ๋‘๋ฅผ, ํ•œ ๊ฑธ์Œ์— ๋น„ํŠธ ํ•˜๋‚˜๋งŒ ๋ฐ”๋€Œ๋Š” ์ผ๋ฐ˜ํ™”๋œ ๋ฐ˜์‚ฌ ๊ทธ๋ ˆ์ด ๋ถ€ํ˜ธ๋กœ ๋Š˜์–ด๋†“๋Š”๋‹ค. ๊ฐ™์€ ์ˆ˜์—ด์„ ๋‘ ๊ฐ€์ง€๋กœ ๊ตฌํ˜„ํ•ด ๋‚˜๋ž€ํžˆ ๋‘”๋‹ค. ํ•˜๋‚˜๋Š” ๋งˆ๋””๋งˆ๋‹ค ์ฝ”๋ฃจํ‹ด ํ•˜๋‚˜๋ฅผ ๋‘๋Š” ๊ฒƒ์ด๊ณ , ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ํ•œ ๊ฑธ์Œ์ด ์–ธ์ œ๋‚˜ ๋„ค ๊ณ ๋ฆฌ์งœ๋ฆฌ ๋ณ€๋‘๋ฆฌ์— ๋Œ€ํ•œ ์ •ํ•ด์ง„ ์ˆ˜์˜ ์—ฐ์‚ฐ์ธ ๋ฌด๋ฐ˜๋ณต ๊ตฌํ˜„์ด๋‹ค. CWEB ์›๋ณธ์ด ์—ด ๊ฐ€์ง€ ์ƒํƒœ์˜ switch๋กœ ์ฝ”๋ฃจํ‹ด์„ ์†์ˆ˜ ํ‰๋‚ด ๋‚ด๋Š” ์ž๋ฆฌ์—์„œ, ์˜ฎ๊ธด ํŒ์€ ๊ทธ๊ฒƒ์„ ๋ฒ„ํผ ์—†๋Š” ์ฑ„๋„์—์„œ ๋งŒ๋‚˜๋Š” ๊ณ ๋ฃจํ‹ด์œผ๋กœ ์ ๋Š”๋‹ค. ๊ทธ๋ž˜์„œ ์—ฌ์„ฏ ์ค„์งœ๋ฆฌ ์ฝ”๋ฃจํ‹ด ๋ชธํ†ต์ด ๊ทธ๋Œ€๋กœ ์‚ด์•„๋‚จ๋Š”๋‹ค. MetaPost ๊ทธ๋ฆผ ์…‹.
  • li-ruskey.w โ€” ์•ž์˜ koda-ruskey์˜ ์†ํŽธ์ด๋‹ค. ์ด์ œ ์ œ์•ฝ์— ๋ฐฉํ–ฅ์ด ์žˆ์œผ๋ฏ€๋กœ ์ž…๋ ฅ์€ ์ˆฒ ํฌ์…‹์ด ์•„๋‹ˆ๋ผ ์™„์ „ ๋น„์ˆœํ™˜์ธ ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„ ์•„๋ฌด๊ฒƒ์ด๋‚˜ ๋˜๊ณ , ํ•  ์ผ์€ x โ†’ y โŸน ๋น„ํŠธ x โ‰ค ๋น„ํŠธ y๋ฅผ ์ง€ํ‚ค๋Š” 0/1 ๋ผ๋ฒจ๋ง์„ ๋ชจ๋‘, ๋ฟŒ๋ฆฌ ๋น„ํŠธ๊ฐ€ ๋”ฑ ํ•œ ๋ฒˆ ๋’ค์ง‘ํžˆ๋Š” ๊ทธ๋ ˆ์ด ๊ฒฝ๋กœ๋กœ ๋Š˜์–ด๋†“๋Š” ๊ฒƒ์ด๋‹ค. ์ค€์–‘ยท์ค€์Œ ๊ผญ์ง“์  ์ง‘ํ•ฉ, ๋ฐ˜์ชฝ ๊ฒฝ๋กœ ๋‘˜์„ ํ•˜๋‚˜๋กœ ์ž‡๋Š” ํ˜ผํ•ฉ ๊ธฐ์ˆ˜ ๋ฐ˜์‚ฌ ๋ถ€ํ˜ธ, ๋”ธ๋ฆผ๋“ค๊ณผ ์ „์ด ๋ฌธ์ž์—ด, ๊ทธ๋ฆฌ๊ณ  ๋Œ์•„๋‹ค๋‹ˆ๋Š” ํ”Œ๋ž˜๊ทธ ๋’ค์— ๋‚ก์€ ๊ณ ๋ฆฌ๋ฅผ ๋‚จ๊ฒจ ๋‘๋Š” ๊ฒƒ์œผ๋กœ ๋ฌด๋ฐ˜๋ณต์„ ์ง€ํ‚ค๋Š” ๋ณ€๋‘๋ฆฌ๊ฐ€ ๋‚˜์˜จ๋‹ค. ํฌ๋ˆ„์Šค๋Š” ์ฝ”๋ฃจํ‹ด ํŒ์„ ์—ฐ์Šต ๋ฌธ์ œ๋กœ ๋‚จ๊ธฐ๋ฉฐ ๋ถ€๋ชจ ํฌ์ธํ„ฐ๊ฐ€ ๋™์ ์ด์–ด์•ผ ํ•  ๊ฒƒ์ด๋ผ๊ณ  ํ–ˆ๋Š”๋ฐ, ์˜ฎ๊ธด ํŒ์€ ๊ทธ ์—ฐ์Šต ๋ฌธ์ œ๋ฅผ ๊ณ ๋ฃจํ‹ด์œผ๋กœ ํ‘ผ๋‹ค. ๊ฑฐ๊ธฐ์„œ๋Š” ์–ด๋ ค์›€์ด ์ฆ๋ฐœํ•œ๋‹ค(ํ˜ธ์ถœ ์Šคํƒ์ด ๊ณง ๋ถ€๋ชจ ํฌ์ธํ„ฐ๋‹ค). ์ฝ”๋ฃจํ‹ด๋งˆ๋‹ค ์ฒ˜์Œ ๊นจ์–ด๋‚  ๋•Œ ์ œ ๋น„ํŠธ๋ฅผ ์ฝ์–ด ๋“ค์–ด๊ฐˆ ์ž๋ฆฌ๋ฅผ ๊ณ ๋ฅธ๋‹ค. ๋‘ ๊ตฌํ˜„์ด ํ•œ ํ”„๋กœ๊ทธ๋žจ ์•ˆ์—์„œ ๋Œ๊ณ , -v ์ถœ๋ ฅ๊นŒ์ง€ CWEB ์›๋ณธ๊ณผ ์ค„ ๋‹จ์œ„๋กœ ๊ฐ™๋‹ค. MetaPost ๊ทธ๋ฆผ ๋„ท.
  • lp.w โ€” ํฌ๋ˆ„์Šค๊ฐ€ ์‹ฌํ”Œ๋ ‰์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ชธ์œผ๋กœ ์ตํžˆ๋ ค๊ณ  ์ง  ์„ ํ˜• ๊ณ„ํš ํ”„๋กœ๊ทธ๋žจ(2005)์ด๋‹ค. ์—ฌ์œ  ๋ณ€์ˆ˜๋ฅผ ๋„ฃ์€ ํ‘œ์—์„œ 0ํ–‰์ด ๋ชจ๋‘ ์Œ ์•„๋‹Œ ์ˆ˜๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ ํ”ผ๋ฒ—ํ•˜๊ณ , ํ”ผ๋ฒ— ํ–‰์€ ์‚ฌ์ „์ˆœ์œผ๋กœ ๊ฐ€์žฅ ์ž‘์€ r_i/a_ij๋กœ ๊ณจ๋ผ ๋˜ํ’€์ด๋ฅผ ํ”ผํ•œ๋‹ค. ์ •์ˆ˜ ํ‘œ(์—ด๋งˆ๋‹ค ๋ฐฐ์œจ์„ ๋‘์–ด ๋ถ„์ˆ˜๋ฅผ ํ”ผํ•จ)์™€ ๋ถ€๋™์†Œ์ˆ˜์  ํ‘œ๋ฅผ ๋‚˜๋ž€ํžˆ ๋Œ๋ ค ์„œ๋กœ ํ™•์ธํ•˜๊ณ , ์Œ๋Œ€ ๋ฌธ์ œ์˜ ํ•ด๋„ ํ•จ๊ป˜ ์ฝ๋Š”๋‹ค. ์›๋ณธ์˜ ๊ฒฐํ•จ์„ ๊ณ ์ณค๋‹ค. ์Œ์ˆ˜ ์ƒ์ˆ˜ํ•ญ ๊ฒ€์‚ฌ๊ฐ€ ์—‰๋šฑํ•œ ์นธ์„ ์ฝ์–ด ํ•ด ์—†๋Š” ๋ฌธ์ œ์— ์—‰ํ„ฐ๋ฆฌ ๋‹ต์„ ๋‚ด๋Š” ๊ฒƒ, ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๊ธ€์ž์—์„œ ๋์—†์ด ๋Œ๋ฉฐ ๋ฐฐ์—ด ๋ฐ–์— ์“ฐ๋Š” ๊ฒƒ, ์ค„๋ฐ”๊ฟˆ ์—†๋Š” ๋งˆ์ง€๋ง‰ ์ค„์„ ๊ฑฐ์ ˆํ•˜๋Š” ๊ฒƒ, long์„ %d๋กœ ์ฐ์–ด 2ยณยน ์ด์ƒ์ด ์ž˜๋ฆฌ๋Š” ๊ฒƒ, ์ •์ˆ˜ ๋ฐฉ๋ฒ•์˜ 64๋น„ํŠธ ๋„˜์นจ์„ ๋ชจ๋ฅด๋Š” ๊ฒƒ์ด๋‹ค. ์„ค๋ช…์— ์žˆ๋˜ ํ‘œ์™€ ์‹์˜ ์ž˜๋ชป ์—ฌ๋Ÿฟ๋„ ๋ฐ”๋กœ์žก์•˜๋‹ค. ๋ฌด์ž‘์œ„ ๋ฌธ์ œ 1000๊ฐœ์—์„œ ์ตœ์ ํ•ด 418๊ฐœ๋ฅผ ์Œ๋Œ€์„ฑ ์ฆ๋ช…์„œ๋กœ ํ™•์ธํ–ˆ๊ณ , ๋„˜์น˜์ง€ ์•Š์€ 839๊ฐœ๋Š” ์›๋ณธ๊ณผ ๋ฐ”์ดํŠธ๊นŒ์ง€ ๊ฐ™๋‹ค.
  • matula.w โ€” ์ž์œ  ๋‚˜๋ฌด S๊ฐ€ ์ž์œ  ๋‚˜๋ฌด T์˜ ๋ถ€๋ถ„ ๋‚˜๋ฌด์™€ ๋™ํ˜•์ธ๊ฐ€? ๋ถ€๋ถ„ ๊ทธ๋ž˜ํ”„ ๋™ํ˜•์€ ์ผ๋ฐ˜์ ์œผ๋กœ NP-์™„์ „์ด์ง€๋งŒ(ํด๋ฆญ๊ณผ ํ•ด๋ฐ€ํ„ด ๊ฒฝ๋กœ๊ฐ€ ํŠน์ˆ˜ํ•œ ๊ฒฝ์šฐ๋‹ค), ๋‚˜๋ฌด์— ๋Œ€ํ•ด์„œ๋Š” ๋ฐ์ด๋น„๋“œ ๋งˆํˆด๋ผ์˜ 1978๋…„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด O(mnยทsqrt(์ตœ๋Œ€ ๋‚ด๋ถ€ ์ฐจ์ˆ˜))์— ๋งค๋“ญ์ง“๋Š”๋‹ค. ์ด๊ฒƒ์„ hopcroft-karp.w ๋ฐ”๋กœ ๋‹ค์Œ์— ์ฝ์„ ๊นŒ๋‹ญ์€, ์•ˆ์ชฝ ๋ฐ˜๋ณต๋ฌธ์ด ๊ณง ์ด๋ถ„ ๋งค์นญ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. S์˜ ๋งˆ๋”” p๊ฐ€ T์˜ v์— ๋ฐ•ํžˆ๋Š” ๊ฒƒ์€ ์ •ํ™•ํžˆ p์˜ ์ž์‹๋“ค์„ v์˜ ์„œ๋กœ ๋‹ค๋ฅธ ์ด์›ƒ์— ์ง์ง€์„ ์ˆ˜ ์žˆ์„ ๋•Œ์ด๊ณ , ๋งˆํˆด๋ผ์˜ ํ†ต์ฐฐ์€ ๊ทธ ๋ถ€๋ถ„ ๋ฌธ์ œ์˜ s+1๊ฐ€์ง€ ํŒ(์–ด๋А ์ด์›ƒ์ด ๋ถ€๋ชจ ๋…ธ๋ฆ‡์„ ํ•˜๋Š”๊ฐ€์— ๋”ฐ๋ผ)์ด ํ•˜๋‚˜๋กœ ๋ฌด๋„ˆ์ ธ n๋ฐฐ๋ฅผ ์•„๋‚€๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ํฌ๋ˆ„์Šค๋Š” ๋งค์นญ ์ฝ”๋“œ๋ฅผ HOPCROFT-KARP์—์„œ ํ›”์ณ ์™”๋‹ค๊ณ  ์ ์—ˆ๋Š”๋ฐ, ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ๋ง‰ ์˜ฎ๊ธด ์ฐธ์ด์—ˆ๋‹ค. ์ ˆ์ •์€ ๋งˆํˆด๋ผ์˜ ์ •๋ฆฌ 3.4๋‹ค. ์™„์ „ ๋งค์นญ์—์„œ ํ’€๋ ค๋‚  ์ˆ˜ ์žˆ๋Š” ์ฒ˜๋…€๋“ค์€ ์ •ํ™•ํžˆ HK๊ฐ€ ๋ฉˆ์ถœ ๋•Œ ๋„ˆ๋น„ ์šฐ์„  ํ์— ๋‚จ์•„ ์žˆ๋Š” ๊ฒƒ๋“ค์ด๋ฏ€๋กœ, ๋‹ต์€ ์ด๋ฏธ dag ์•ˆ์— ๋†“์—ฌ ์žˆ๋‹ค. ํฌ๋ˆ„์Šค์˜ mems๋ฅผ ๋‹ฌ์•„ ๋‘์—ˆ๊ณ , ์˜ฎ๊ธด ํŒ์€ ๊ทธ ์ˆ˜๋ฅผ ์ •ํ™•ํžˆ ๋˜์‚ด๋ฆฐ๋‹ค. ๊ทธ ์ž์‹ ์˜ ์˜ˆ์—์„œ 1917+14760, ๊ทธ๋ฆฌ๊ณ  ๋ฌด์ž‘์œ„ ๋‚˜๋ฌด ์Œ 1100๊ฐœ์—์„œ ๋‹ต๊ณผ ์ฐํžŒ ๋ฐ•์Œ๊ณผ mem ์ˆ˜๊ฐ€ ๋ชจ๋‘ ๊ฐ™๋‹ค. ๊ฑฐ๊ธฐ ๋‹ฟ๊ธฐ๊นŒ์ง€ ์กฐ์‹ฌํ•  ๊ฒƒ์ด ์žˆ์—ˆ๋‹ค. C์˜ ์‰ผํ‘œ ์—ฐ์‚ฐ์ž๋Š” ์•ž์— ๋ถ™์ธ mems++๊ฐ€ ๋˜๊ฑฐ๋‚˜ mems, k = mems+1, next[k] ๊ฐ™์€ ๋‹ค์ค‘ ๋Œ€์ž…์ด ๋˜๊ณ , && ์•ˆ์— ๋†“์ธ o๋Š” ๋‘ ์กฐ๊ฑด ๊ฐ€์šด๋ฐ ํ•˜๋‚˜์—๋งŒ ๋งค๊ฒจ์ง„๋‹ค. ๊ทธ๊ฒƒ์„ ๋†“์ณ ์œ ๋ น mems 119๋ฅผ ์–ป์€ ์ ์ด ์žˆ๋‹ค. ์˜ฎ๊ฒจ ์˜จ ํŒ์—๋Š” ์ง„์งœ ๊ฒฐํ•จ๋„ ์žˆ์—ˆ๋‹ค. ๋ฐฐ์—ด thresh๋Š” maxn๊ฐœ๋กœ ์„ ์–ธ๋˜์—ˆ๋Š”๋ฐ T์˜ ์ตœ๋Œ€ ์ฐจ์ˆ˜๊ฐ€ 61์ผ ๋•Œ ์ฒจ์ž maxn์œผ๋กœ ์ฝํžˆ๊ณ , ๊ทธ๊ฒƒ์„ ์ฑ„์šฐ๋Š” ๋ฐ˜๋ณต๋ฌธ์€ T์˜ ์ตœ๋Œ€ ์ฐจ์ˆ˜๊ฐ€ S์˜ ๋งˆ๋”” ์ˆ˜์— ์ด๋ฅผ ๋•Œ๋งˆ๋‹ค solve()๊ฐ€ ํ•„์š”๋กœ ํ•˜๋Š” ์นธ์— ๋ฏธ์น˜์ง€ ๋ชปํ•œ ์ฑ„ ๋ฉˆ์ถ˜๋‹ค. ์ด๊ฒƒ์ด ํƒˆ ์—†์ด ์ง€๋‚˜๊ฐ„ ๊ฒƒ์€ ์ด์›ƒํ•œ ๋‚ฑ๋ง์ด ๋งˆ์นจ 0์„ ๋‹ด๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ฑฐ๊ธฐ์— ๊ฐ’์„ ์‹ฌ์–ด ๋‘๋ฉด ์˜› ์ฝ”๋“œ๋Š” 61์ด ์˜ณ์€ ์ž๋ฆฌ์—์„œ 62๋ผ๊ณ  ๋‹ตํ•œ๋‹ค. ํฌ๋ˆ„์Šค๋Š” ์ด ๊ธ€์„ ์“ฐ๋Š” ๋™์•ˆ์ธ 2026-08-21์— ํŒŒ์ผ์„ ๊ณ ์ณค๊ณ , ๋ฐ”๋กœ ๊ทธ ๋‘ ๊ณณ์„ ์†๋ณด์•˜๋‹ค. ๋ฐฐ์—ด์€ ์—ฌ๊ธฐ์„œ์ฒ˜๋Ÿผ ํ•œ ์นธ ๋Š˜์—ˆ๊ณ , ๋น ์ง„ ์ž๋ฆฌ๋Š” ๊ฐ™์€ ๋น„์šฉ์˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ์ฑ„์›Œ์ ธ, ์ด์ œ ์‹œํ—˜ํ•œ ๋ชจ๋“  ์ž…๋ ฅ์—์„œ mem ์ˆ˜๊ฐ€ ๊ทธ์˜ ๊ฒƒ๊ณผ ๊ฐ™๋‹ค. ํฌ๋ˆ„์Šค๋Š” ์ œ ํ”„๋กœ๊ทธ๋žจ ๊ณ์— ๋ณ€๊ฒฝ ํŒŒ์ผ ์…‹์„ ๋‘๋Š”๋ฐ, ์…‹ ๋ชจ๋‘ ์—ฌ๊ธฐ์— ์˜ฎ๊ฒจ ๋‘์—ˆ๋‹ค. matula-big.ch๋Š” ๋ช…๋ น์ค„์˜ ๋ถ€๋ชจ ํฌ์ธํ„ฐ ๋ฌธ์ž์—ด์„ rectree ํŒŒ์ผ๋กœ ๋ฐ”๊พธ์–ด maxn์„ 62์—์„œ 2000์œผ๋กœ ํ‚ค์šด๋‹ค. ๊ทธ ํ˜•์‹์€ S์˜ ๋ฟŒ๋ฆฌ๊ฐ€ ์žŽ์ด๋ผ๊ณ  ์•ฝ์†ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ S๋ฅผ ๋‹ค์‹œ ๋ฟŒ๋ฆฌ๋‚ด๋ฆฌ๊ณ  ์•ˆ์—์„œ ๋ฒˆํ˜ธ๋ฅผ ์ƒˆ๋กœ ๋งค๊ธด ๋’ค, ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ๊ทธ์˜ ๋ฒˆํ˜ธ๋กœ ๋Œ๋ ค์ค€๋‹ค. matula-big-planted.ch๋Š” T๋งŒ ๋ฐ›์•„ ๊ฑฐ๊ธฐ์„œ ๋ฌด์ž‘์œ„๋กœ ์žŽ d๊ฐœ๋ฅผ ์ง€์›Œ S๋ฅผ ๊ธฐ๋ฅธ๋‹ค. SGB์˜ gb_flip์„ go-sgb๋กœ ์“ฐ๋ฏ€๋กœ ๊ฐ™์€ ์”จ์•—์ด๋ฉด ํฌ๋ˆ„์Šค์˜ C์™€ ๊ฐ™์€ ์žŽ์„ ์ง€์šด๋‹ค. ๊ทธ๋Ÿฌ๋ฉด S๋Š” ๋ฐ˜๋“œ์‹œ ๋ถ€๋ถ„ ๋‚˜๋ฌด์ด๊ณ , ๋ฌผ์Œ์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๊ทธ๊ฒƒ์„ ์–ผ๋งˆ๋‚˜ ๋นจ๋ฆฌ ์ฐพ๋А๋ƒ๊ฐ€ ๋œ๋‹ค. ์ ์šฉ์€ CWEB์—์„œ ํ•˜๋˜ ๋Œ€๋กœ gtangle matula.w matula-big.ch. ๋‘˜ ๋‹ค ํฌ๋ˆ„์Šค์˜ C์™€ mem๊นŒ์ง€ ๊ฐ™๋‹ค. ๊ทธ์˜ ์˜ˆ์—์„œ 3221+14939์™€ 5750+36561์ด๊ณ , ๋ฌด์ž‘์œ„ ๋‚˜๋ฌด ์Œ 660๊ฐœ์™€ ๋ฌด์ž‘์œ„ ๋‚˜๋ฌด 500๊ฐœ์—์„œ ๋‹ต๊ณผ ์ข…๋ฃŒ ์ฝ”๋“œ์™€ mem ์ˆ˜๊ฐ€ ๋ชจ๋‘ ๊ฐ™๋‹ค. ์‹ฌ์€ ํŒ์˜ ์‚ฐ๋ฌธ์€ ๊ทธ๊ฒƒ์ด ๊ณ ์Šค๋ž€ํžˆ ๋ฌผ๋ ค๋ฐ›์€ ๊ฒฐํ•จ๋„ ์ ์–ด ๋‘”๋‹ค. ๋ฟŒ๋ฆฌ ์ž์‹ ์ด ์ง€์›Œ์ง€๋ฉด ์•„์ง ๊ณ ์น˜์ง€ ์•Š์€ child ํฌ์ธํ„ฐ๊ฐ€ ์ด๋ฏธ ์ง€์›Œ์ง„ ๋งˆ๋””๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ ์ˆ˜ ์žˆ๊ณ , ๊ทธ๋Ÿฌ๋ฉด ๋‘ ํ”„๋กœ๊ทธ๋žจ ๋ชจ๋‘ "I'm confused!"๋กœ ๋ฉˆ์ถ˜๋‹ค. ๋งˆ๋”” 127๊ฐœ ๊ฐ€์šด๋ฐ 124๊ฐœ๋ฅผ ์ง€์šธ ๋•Œ ์”จ์•— 200๊ฐœ ๊ฐ€์šด๋ฐ 134๊ฐœ๊ฐ€ ๊ทธ๋ ‡๋‹ค. matula-exhaustive.ch๋Š” ๋ช…๋ น์ค„์˜ ๋‚˜๋ฌด ๋‘˜์„ ๊ฐœ์ˆ˜ ๋‘˜๋กœ ๋ฐ”๊พธ์–ด, ๋งˆ๋””๊ฐ€ m๊ฐœ์ธ ์ž์œ  ๋‚˜๋ฌด์™€ n๊ฐœ์ธ ์ž์œ  ๋‚˜๋ฌด์˜ ๋ชจ๋“  ์Œ์„ ๋Œ๋ฆฐ๋‹ค. ๊ทธ๋ž˜์„œ maxn์ด 62์—์„œ 16์œผ๋กœ ๋‚ด๋ ค๊ฐ„๋‹ค. ์ž์œ  ๋‚˜๋ฌด๋ฅผ ์ •ํ™•ํžˆ ํ•œ ๋ฒˆ์”ฉ ์–ป๋Š” ๊ฒƒ์ด ์žฌ๋ฏธ์žˆ๋Š” ๋Œ€๋ชฉ์ด๋‹ค. ๋ฐฉํ–ฅ ์žˆ๋Š” ์ˆฒ์˜ ์ •๊ทœ ์ธต ์ˆ˜์—ด๋กœ ๋งŒ๋“  ํŠธ๋ผ์ด(TAOCP ์—ฐ์Šต ๋ฌธ์ œ 7.2.1.6โ€“90)๊ฐ€ ์ค‘์‹ฌ ๋‚˜๋ฌด๋ฅผ ์ฃผ๊ณ , ์ ˆ๋ฐ˜ ํฌ๊ธฐ ์ˆฒ์˜ ์Œ์ด ์ด์ค‘ ์ค‘์‹ฌ ๋‚˜๋ฌด๋ฅผ ์ค€๋‹ค. ํฌ๋ˆ„์Šค๋Š” ๊ทธ ์žฅ์น˜๋ฅผ S์šฉ๊ณผ T์šฉ์œผ๋กœ ๋‘ ๋ฒˆ ์“ฐ๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ๋Š” first/next/nth๋ฅผ ๊ฐ–์ถ˜ family ํƒ€์ž… ํ•˜๋‚˜์ด๊ณ , ๊ทธ ๋•์— ๊ทธ์˜ make_?string ๋‘˜๋„ ํ•˜๋‚˜๋กœ ํ•ฉ์ณ์ง„๋‹ค. ์Œ๋งˆ๋‹ค mems์˜ ์›ฐํผ๋“œ ํ‰๊ท ๊ณผ ๋ถ„์‚ฐ, ๊ฐ€์žฅ ์–ด๋ ค์šด ์Œ, ๊ทธ๋ฆฌ๊ณ  ๊ฐ€์žฅ ๋งŽ์ด ๋˜ ๊ฐ€์žฅ ์ ๊ฒŒ ๋ฐ•ํžˆ๋Š” ๋‚˜๋ฌด๋ฅผ ๋ณด๊ณ ํ•œ๋‹ค. ๋‚˜๋ฌด ๊ฐœ์ˆ˜์˜ ๊ณฑ์ด 200000 ์ดํ•˜์ธ (m, n) ์Œ 79๊ฐ€์ง€ ๋ชจ๋‘์—์„œ C์™€ ๋งž์ถฐ ๋ณด์•˜๊ณ , ์ถœ๋ ฅ๊ณผ ์ข…๋ฃŒ ์ฝ”๋“œ์™€ mems๊ฐ€ ๊ฐ™๋‹ค. ์ด๋ฅผํ…Œ๋ฉด m = n = 8์—์„œ 2407+426125๋‹ค. MetaPost ๊ทธ๋ฆผ ์…‹.
  • maxcliques.w โ€” ๋งˆ๋””๊ฐ€ 64๊ฐœ ์ดํ•˜์ธ ๊ทธ๋ž˜ํ”„์˜ ๊ทน๋Œ€ ํด๋ฆฌํฌ๋ฅผ ๋ชจ๋‘ ์ฐพ๋Š”๋‹ค. Moody์™€ Hollis์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ, ์ธ์ ‘ ํ–‰๋ ฌ์˜ ํ–‰ ฯ_v์™€ ์ž๋ฆฌ v๋งŒ ๋ˆ ฮด_v๋ฅผ ๋งˆ๋””๋งˆ๋‹ค ๊ณจ๋ผ ๋น„ํŠธ๋ณ„๋กœ ๊ต์ฐจํ•œ ๊ฒƒ ๊ฐ€์šด๋ฐ ๊ทน๋Œ€์ธ ๊ฒƒ๋งŒ ์ž‘์—… ๊ณต๊ฐ„์— ๋“ค๊ณ  ๊ฐ„๋‹ค. ๊ฐ€์žฅ ๋‚ฎ์€ ์ผœ์ง„ ๋น„ํŠธ๋Š” ๋“œ ๋ธŒ๋ผ์œˆ ๊ณฑ์œผ๋กœ ์ฐพ๋Š”๋‹ค. ํฌ๋ˆ„์Šค์˜ 2008๋…„ CWEB ํ”„๋กœ๊ทธ๋žจ์„ ์˜ฎ๊ธฐ๋ฉฐ ์›๋ณธ์˜ ๊ฒฐํ•จ ๋„ท์„ ๊ณ ์ณค๋‹ค. ๋งˆ๋”” ์—†๋Š” ๊ทธ๋ž˜ํ”„์—์„œ ์Œ์ˆ˜๋งŒํผ ๋ฐ€์–ด ์—†๋Š” ๋งˆ๋”” ์ด๋ฆ„ 64๊ฐœ๋ฅผ ์ฝ๋Š” ๊ฒƒ, ํก์ˆ˜ํ•˜๋Š” ๊ฐ€์ง€์—์„œ ์ž‘์—… ๊ณต๊ฐ„ ์‚ฌ์šฉ๋Ÿ‰์„ ์ ๊ฒŒ ์žฌ๋Š” ๊ฒƒ, ์ž‘์—… ๊ณต๊ฐ„์ด ๋„˜์น˜๋ฉด ๋‘ ๋ฌด๋ฆฌ๊ฐ€ ์„œ๋กœ ๋ฎ์–ด์จ ํ‹€๋ฆฐ ๋‹ต์„ ์กฐ์šฉํžˆ ๋‚ด๋Š” ๊ฒƒ(๋งˆ๋”” 33๊ฐœ์งœ๋ฆฌ ๋ฌธโ€“๋ชจ์ € ๊ทธ๋ž˜ํ”„์—์„œ 177147๊ฐœ ๋Œ€์‹  87499๊ฐœ), mems๊ฐ€ 32๋น„ํŠธ์—์„œ ํ•œ ๋ฐ”ํ€ด ๋„๋Š” ๊ฒƒ์ด๋‹ค. Bronโ€“Kerbosch์™€ ๊ทธ๋ž˜ํ”„ 75๊ฐœ์—์„œ ๋งž์ถฐ ๋ณด์•˜๊ณ , ๊ณ ์นœ CWEB ์›๋ณธ๊ณผ ๊ทธ๋ž˜ํ”„ 85๊ฐœ์—์„œ ๋ฐ”์ดํŠธ๊นŒ์ง€ ๊ฐ™๋‹ค.
  • nqueens-somers.w โ€” N ์—ฌ์™• ๋ฌธ์ œ์˜ ํ•ด๋ฅผ ์„ธ๋Š” ์ œํ”„ ์†Œ๋จธ์ฆˆ์˜ ๊ธฐ๋ฒ•(2002)์„ ์˜ฎ๊ธฐ๋ฉด์„œ ํ•˜๋‚˜ํ•˜๋‚˜ ํ’€์–ด ์„ค๋ช…ํ•œ๋‹ค. ํŒ์˜ ํ•œ ์ค„์„ N๋น„ํŠธ ์ •์ˆ˜๋กœ ๋‚˜ํƒ€๋‚ด๊ณ , ๋Œ€๊ฐ์„ ์˜ ์œ„ํ˜‘์„ ์ค„๋งˆ๋‹ค ํ•œ ์นธ์”ฉ ๋ฐ€์–ด ๋น„ํŠธ ์ž๋ฆฌ๊ฐ€ ๊ณง ๋ง‰ํžŒ ์นธ์ด ๋˜๊ฒŒ ํ•˜๊ณ , ๋†“์•„ ๋ณผ ์นธ์„ -x & x๋กœ ๋ฝ‘๊ณ , ๊ฑฐ์šธ ๋Œ€์นญ์œผ๋กœ ์ผ์„ ์ ˆ๋ฐ˜์œผ๋กœ ์ค„์ด๋˜ ํ™€์ˆ˜ ํŒ์˜ ๊ฐ€์šด๋ฐ ์นธ์€ ๋”ฐ๋กœ ๋‹ค๋ฃจ๊ณ , ์žฌ๊ท€ ๋Œ€์‹  ๋ช…์‹œ์  ์Šคํƒ์„ ์“ด๋‹ค. MetaPost ๊ทธ๋ฆผ ์…‹. ์›๋ณธ nq.c์™€ N=18๊นŒ์ง€ ํ•ด์˜ ์ˆ˜๊ฐ€ ๊ฐ™๊ณ , -p๋กœ ์ฐ๋Š” ํŒ์€ ์›๋ณธ๊ณผ ๋ฐ”์ดํŠธ๊นŒ์ง€ ๊ฐ™๋‹ค. ์›๋ณธ์„ ๊ทธ๋Œ€๋กœ ์˜ฎ๊ธฐ๋ฉด Go์—์„œ 30% ๋А๋ฆฐ๋ฐ, ๋ฐฉ๊ธˆ ๋ฐฐ์—ด์— ์ ์€ ๊ฐ’์„ ๋„๋กœ ์ฝ๋Š” ํ•œ ๊ณณ์ด ์›์ธ์ด๋ผ ๊ณ ์ณค๋‹ค. ๊ทธ๋Ÿฌ๊ณ  ๋‚˜๋ฉด ๋ช…์‹œ์  ์Šคํƒ๊ณผ ์žฌ๊ท€๊ฐ€ ๊ฑฐ์˜ ๋น„๊ธด๋‹ค. ์ง์ด ๋˜๋Š” ๋ณ€๊ฒฝ ํŒŒ์ผ nqueens-somers-par.ch(gtangle nqueens-somers.w nqueens-somers-par.ch)๋Š” ์ฒซ ๋‘ ์ค„์˜ ์—ฌ์™• ์ง์„ ์ž‘์—…์œผ๋กœ ์‚ผ์•„ ๊ณ ๋ฃจํ‹ด๋“ค์— ๋‚˜๋ˆ  ์ค€๋‹ค. ๊ฒฐ์ •์ ์ธ ๋ฐ˜๋ณต๋ฌธ์€ ํ•œ ๊ธ€์ž๋„ ๋ฐ”๊พธ์ง€ ์•Š๊ณ , ์ฝ”์–ด 10๊ฐœ์—์„œ N=18์ด 186์ดˆ์—์„œ 27์ดˆ๋กœ ์ค€๋‹ค.
  • ntt.w โ€” ๊ณ ์† ํ‘ธ๋ฆฌ์— ๋ณ€ํ™˜๊ณผ ๊ทธ ์ •์ˆ˜ ์‚ฌ์ดŒ์ธ ์ˆ˜๋ก  ๋ณ€ํ™˜์œผ๋กœ ๊ฐ€๋Š” ์นœ์ ˆํ•œ ๊ธธ์žก์ด. ๊ฐ’๋งค๊น€โ€“๊ณฑ์…ˆโ€“๋ณด๊ฐ„์ด๋ผ๋Š” ์šฐํšŒ๋กœ, ์ œ๊ณฑ์ด 1์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ๊ทผ์„ ์ ‘์–ด ๋ฌธ์ œ๋ฅผ ์ ˆ๋ฐ˜์œผ๋กœ ๋งŒ๋“œ๋Š” ๊นŒ๋‹ญ, ๋น„ํŠธ ๋’ค์ง‘๊ธฐ์™€ ๋‚˜๋น„ ํšŒ๋กœ, ์—ญ๋ณ€ํ™˜, NTT๊ฐ€ ํ™˜์— ์ •๋ง๋กœ ์š”๊ตฌํ•˜๋Š” ๊ฒƒ(๊ทธ๋ฆฌ๊ณ  998244353 = 119ยท2ยฒยณ+1์ธ ๊นŒ๋‹ญ), ๊ทธ๋ฆฌ๊ณ  ๊ฐ€์šฐ์Šค(1805)์—์„œ ํ•˜๋น„์™€ ํŒ๋ฐ๋ฅดํ›„๋ฒˆ(2021)์— ์ด๋ฅด๋Š” ๋œป๋ฐ–์˜ ์—ญ์‚ฌ๋ฅผ ๋‹ค๋ฃฌ๋‹ค. MetaPost ๊ทธ๋ฆผ ์…‹. ์ด ๊ธ€์ด ํ–ฅํ•ด ๊ฐ€๋Š” ํ”„๋กœ๊ทธ๋žจ์€ Library Checker์˜ Convolution (mod 998244353), ๊ณง O(n log n)์˜ ๋‹คํ•ญ์‹ ๊ณฑ์…ˆ์„ ํ‘ผ๋‹ค.
  • pairsums.w โ€” ๋ชจ๋“  ๋ถ€๋ถ„ ๋ฐฐ์—ด์— ๋Œ€ํ•œ ์Œ ๊ณฑ์˜ ํ•ฉ ๊ฐ€์šด๋ฐ ๊ฐ€์žฅ ํฐ ๊ฒƒ์„ ์ฐพ๋Š”๋‹ค. ํ•ญ๋“ฑ์‹ value = (Sยฒโˆ’Q)/2์™€ ๋ˆ„์ ํ•ฉ ๋น„ํ‹€๊ธฐ๊ฐ€ ์ด๊ฒƒ์„ ์ง์„  ๊ฐ€์กฑ์˜ ์œ„ ํฌ๋ฝ์„  ๋ฌธ์ œ๋กœ ๋ฐ”๊พธ๊ณ , ๋ฆฌ์ฐจ์˜ค ํŠธ๋ฆฌ๋กœ O(n log n)์— ํ‘ผ๋‹ค.
  • perec.w โ€” ์กฐ๋ฅด์ฃผ ํŽ˜๋ ‰์˜ ์ธ์ƒ ์‚ฌ์šฉ๋ฒ•์„ ๊ทธ ๋‘ ์ œ์•ฝ์—์„œ ๋‹ค์‹œ ์ง“๋Š”๋‹ค. ์†Œ์„ค์˜ 99๊ฐœ ์žฅ์€ ๋ฐฉ 10ร—10 ๊ฒฉ์ž์˜ ๋‚˜์ดํŠธ ํˆฌ์–ด๋ฅผ ๋”ฐ๋ผ๊ฐ€๋Š”๋ฐ, (1,10)์˜ ์ง€ํ•˜์‹ค๋งŒ ๋น ์ง„๋‹ค. ํŽ˜๋ ‰์ด ์ผ๋ถ€๋Ÿฌ ๋‚ธ ํ ์ธ ํด๋ฆฌ๋‚˜๋ฉ˜์ด๊ณ , ๊ทธ ๋•Œ๋ฌธ์— 65์žฅ๊ณผ 66์žฅ ์‚ฌ์ด์— ๊ทœ์น™์— ์–ด๊ธ‹๋‚˜๋Š” ๋Œ€๊ฐ ๊ฑธ์Œ์ด ํ•˜๋‚˜ ์ƒ๊ธด๋‹ค. ํ”„๋กœ๊ทธ๋žจ์€ SGB์˜ Board๋กœ ๋‚˜์ดํŠธ ํŒ์„ ์ง“๊ณ , ์˜ฎ๊ฒจ ์ ์€ ๊ฒƒ์„ ๋ฏฟ๋Š” ๋Œ€์‹  ํŒ ์ž์‹ ์˜ ํ˜ธ์— ๊ฒฌ์ฃผ์–ด ํŽ˜๋ ‰์˜ ์ˆœ์„œ๋ฅผ ํ™•์ธํ•œ๋‹ค. ๊ฒฌ์ฃผ์–ด ๋ณผ ํ  ์—†๋Š” ํˆฌ์–ด๋ฅผ ์–ป์œผ๋ ค๊ณ  ๋ฐ”๋ฅธ์Šค๋„๋ฅดํ”„ ๊ทœ์น™๋„ ๋Œ๋ฆฌ๊ณ , ์žฅ๋งˆ๋‹ค ๋ฌด์—‡์ด ๋‹ด๊ธฐ๋Š”์ง€ ์ •ํ•˜๋Š” 10์ฐจ ๊ทธ๋ ˆ์ฝ”๋ผํ‹ด ๋ฐฉ์ง„๋„ ๋˜์งš์–ด ์ง“๋Š”๋‹ค(๊ทธ 100์Œ ๊ฐ€์šด๋ฐ 99์Œ์ด ์“ฐ์ด๊ณ , ๋น ์ง„ ํ•˜๋‚˜๊ฐ€ ํด๋ฆฌ๋‚˜๋ฉ˜์˜ ๋ชซ์ด๋‹ค). go-sgb๋ฅผ ์“ด๋‹ค. ๊ทธ ์ž๋ฆฌ์—์„œ luamplib์ด ๊ทธ๋ฆฌ๋Š” MetaPost ๊ทธ๋ฆผ ์…‹.
  • perfect-partition-square.w โ€” ๋งˆ์ดํด ์ผˆ๋Ÿฌ์˜ ํผ์ฆ์„ ๋‹ค๋ฃฌ๋‹ค. 7์„ ์ผ๊ณฑ ๊ฐœ, โ€ฆ, 1์„ ์ผ๊ณฑ ๊ฐœ๋ฅผ 7ร—7 ์ •์‚ฌ๊ฐํ˜•์— ๋†“์•„, ๊ทธ 14๊ฐœ ํ–‰๊ณผ ์—ด์ด 7์„ ๋‘˜ ์ด์ƒ์œผ๋กœ ๋‚˜๋ˆˆ ๋ถ„ํ•  14๊ฐ€์ง€๋ฅผ ๋ชจ๋‘ ๋ณด์ด๊ฒŒ ํ•˜๋ผ. ํฌ๋ˆ„์Šค๋Š” ๋‹ต์ด ์žˆ์„์ง€ ์˜์‹ฌํ•˜๋ฉด์„œ ๋ฌด์ฐจ๋ณ„ ํƒ์ƒ‰์„ "ํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ ๋น ๋ฅด๊ฒŒ" ์จ์„œ 30885๊ฐœ๋ฅผ ๋ณด๊ณ ํ–ˆ๋‹ค. ์˜ฎ๊ธฐ๋‹ค๊ฐ€ ๋‹ต์„ ๋ฐ”๊พธ๋Š” ๊ฒฐํ•จ์„ ๋งŒ๋‚ฌ๋‹ค. ์•ˆ์ชฝ ๋ฐ˜๋ณต๋ฌธ์˜ ํ•œ๊ณ„ 1<<(7*l-m)์ด 32๋น„ํŠธ int๋ฅผ 42๊นŒ์ง€ ๋ฏธ๋Š”๋ฐ, ์ด๊ฒƒ์€ C์—์„œ ์ •์˜๋˜์ง€ ์•Š์€ ๋™์ž‘์ด๊ณ  ์‹ค์ œ ๊ธฐ๊ณ„์—์„œ๋Š” 42 mod 32 = 10๋งŒํผ ๋ฏผ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚จ์€ ์ž๋ฆฟ์ˆ˜์˜ ๋†“์ž„์ƒˆ๊ฐ€ ๊ฑฐ์˜ ๋‹ค ์‹œ๋„ ์กฐ์ฐจ ๋˜์ง€ ์•Š๋Š”๋‹ค. Go์˜ int๋Š” 64๋น„ํŠธ์ด๋ฏ€๋กœ ๊ฐ™์€ ์ค„์ด ๊ณต๊ฐ„์„ ๋‹ค ํ›‘๊ณ , ๊ทธ ๊ฒฐ๊ณผ ์ด ์ •์‚ฌ๊ฐํ˜•์—๋Š” ๋‹ต์ด 16,492,083๊ฐœ ์žˆ๋‹ค. ํฌ๋ˆ„์Šค๊ฐ€ ์„ผ ๊ฒƒ์€ ๊ทธ 0.19%๋‹ค. ๊ทธ ํƒ์ƒ‰์€ ์ฝ”์–ด ๊ธฐ์ค€ 57์‹œ๊ฐ„์ด๋ผ, ์˜ฎ๊ธด ํŒ์€ ๋ถ€๋ถ„ ๋ฌธ์ œ 1716๊ฐœ๋ฅผ ๊ณ ๋ฃจํ‹ด์— ๋‚˜๋ˆ  ์ฃผ๊ณ  ์ €๋งˆ๋‹ค์˜ ๋‹ต์„ ๋ชจ์•„ ๋‘์–ด ์ฐํžˆ๋Š” ์ฐจ๋ก€๋ฅผ ํฌ๋ˆ„์Šค์˜ ๊ฒƒ๊ณผ ๋˜‘๊ฐ™์ด ์ง€ํ‚จ๋‹ค(๋ฒฝ์‹œ๊ณ„๋กœ 6์‹œ๊ฐ„ 26๋ถ„). ์„ธ ๊ฐ€์ง€๋กœ ํ™•์ธํ–ˆ๋‹ค. ๋ฐ€๊ธฐ๋ฅผ ๋‹ค์‹œ 32๋น„ํŠธ๋กœ ์ž๋ฅด๋ฉด ์›๋ณธ C์™€ ๋ฐ”์ดํŠธ๊นŒ์ง€ ๊ฐ™๊ณ (์ถœ๋ ฅ 308์ค„, ์ง„ํ–‰ 1716์ค„, ๋‹ต 30885๊ฐœ), ๋ถ€๋ถ„ ๋ฌธ์ œ 38๊ฐœ๋Š” 64๋น„ํŠธ๋กœ ๊ณ ์นœ C์™€ ์ •ํ™•ํžˆ ๊ฐ™์œผ๋ฉฐ, ์ฐํžŒ ๋‹ต 164,920๊ฐœ๊ฐ€ ๋ชจ๋‘ ๋…๋ฆฝ ๊ฒ€์‚ฌ๊ธฐ๋ฅผ ํ†ต๊ณผํ•œ๋‹ค. ํฌ๋ˆ„์Šค ์ž์‹ ์˜ ๋ฌด์ž‘์œ„ ํƒ์นจ ์–ด๋ฆผ์žก๊ธฐ๋Š” ์ผ์˜ ํฌ๊ธฐ๋ฅผ ๋ฏธ๋ฆฌ ์žฌ๋Š”๋ฐ, 21% ๋‚ฎ๊ฒŒ ์žก์•˜๋‹ค.
  • perm.w โ€” ํ”Œ๋กœ์ด๋“œ์˜ ๋ฌด์ž‘์œ„ ๋ฝ‘๊ธฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜(๋ฒคํ‹€๋ฆฌ์˜ More Programming Pearls์—์„œ). 1โ€ฆN์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ ์ •์ˆ˜ M๊ฐœ๋ฅผ ๊ท ๋“ฑํ•˜๊ฒŒ O(M)์— ๋ฝ‘๋Š”๋‹ค. ๋ชจ๋“  ๋ถ€๋ถ„์ง‘ํ•ฉ์ด ๊ฐ™์€ ํ™•๋ฅ ์ด๊ณ , ์ˆœ์ง„ํ•œ ๋ฐฉ๋ฒ•์ด ๊ฒช๋Š” ์ถฉ๋Œ ์žฌ์‹œ๋„๊ฐ€ ์—†๋‹ค. ์ž‘์€ perm ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(์™€ ์ฑ„๋„ ๊ธฐ๋ฐ˜ ์ƒ์„ฑ๊ธฐ)๋ฅผ ์ง“๋Š” ํ•œ๊ธ€ ๋ฌธํ•™์  ์—์„ธ์ด์ด๊ณ , ์„ฑ์งˆยท์žฌํ˜„์„ฑยท๋ถ„ํฌยท๋ฒค์น˜๋งˆํฌ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋„‰๋„‰ํ•œ @(perm_test.go@> ๋ฌถ์Œ์ด ๋”ธ๋ ค ์žˆ๋‹ค.
  • polynum.w โ€” ๊ณ ์ • ๋‹คํ•ญ์ฒด(ํด๋ฆฌ์˜ค๋ฏธ๋…ธ)๋ฅผ ์„ธ๋Š” Jensen์˜ ์ „์ด ํ–‰๋ ฌ ๋ฐฉ๋ฒ•์„ ํฌ๋ˆ„์Šค๊ฐ€ ๊ตฌํ˜„ํ•œ ๊ฒƒ(2017)์ด๋‹ค. hร—w ์ง์‚ฌ๊ฐํ˜•์„ ์นธ๋งˆ๋‹ค ํ›‘์œผ๋ฉฐ, ์ค„ ๋์˜ ์ ์œ ์™€ ์—ฐ๊ฒฐ ์„ฑ๋ถ„์„ 0 1 ( ) - ๋‹ค์„ฏ ๊ธ€์ž ์งœ์ž„์œผ๋กœ ๋ฌถ๊ณ , ์ตœ์†Œ-ํ•ฉ ํ–‰๋ ฌ ๊ณฑ์…ˆ์œผ๋กœ ์…ˆํ•œ ์—ฐ๊ฒฐ ๋น„์šฉ์œผ๋กœ ์“ธ๋ชจ์—†๋Š” ์งœ์ž„์„ ์ž˜๋ผ ๋‚ธ๋‹ค. ์…ˆ ์ž์ฒด๋Š” ํ•˜์ง€ ์•Š๊ณ  ์ง ํ”„๋กœ๊ทธ๋žจ POLYSLAVE๊ฐ€ ํ•ด์„ํ•  ์ด์ง„ ๋ช…๋ น์–ด ํŒŒ์ผ์„ ๋‚ด๋†“๋Š”๋‹ค. ์งœ์ž„ ํ’€์„ ์œ„์•„๋ž˜๋กœ ๋ฒˆ๊ฐˆ์•„ ๊ตด๋ฆฌ๋ฉฐ ๊ตฌ๋ฉ๊นŒ์ง€ ๋‹ค์‹œ ์“ด๋‹ค. ํ•œ ๋ฐ˜๋ณต๋ฌธ์—์„œ ๋‹ค๋ฅธ ๋ฐ˜๋ณต๋ฌธ ๋ชธํ†ต์œผ๋กœ ๋›ฐ์–ด๋“œ๋Š” goto๋Š” case ๋ชธํ†ต์„ ํ•จ์ˆ˜ ๋ฐ”๊นฅ ์ˆ˜์ค€์˜ ์ด๋ฆ„ํ‘œ๋กœ ํŽด์„œ ์˜ฎ๊ฒผ๋‹ค. ์›๋ณธ์˜ ๊ฒฐํ•จ ์…‹์„ ๊ณ ์ณค๋‹ค. nโ‰ฅ127์ด๋ฉด char ์ง€์ˆ˜๊ฐ€ ๋„˜์ณ ๋ฒ„์Šค ์˜ค๋ฅ˜๋กœ ์ฃฝ๋Š” ๊ฒƒ, confsize๊ฐ€ 0์ด๋ฉด ๋ฐฐ์—ด ๋ฐ–์„ ์ฝ๋Š” ๊ฒƒ, slavesize๊ฐ€ 2ยณโฐ์„ ๋„˜์œผ๋ฉด ๋ช…๋ น์–ด์˜ ์ฃผ์†Œ๊ฐ€ ๊นจ์ง€๋Š” ๊ฒƒ์ด๋‹ค. ํŒŒ์ด์ฌ ์Šฌ๋ ˆ์ด๋ธŒ๋กœ ์„ธ์–ด 20์นธ๊นŒ์ง€ OEIS A001168๊ณผ ๋งž์•˜๊ณ , ์›๋ณธ๊ณผ ์‹คํ–‰ ์Šค๋ฌด ๊ฐ€์ง€์—์„œ ๋ช…๋ น์–ด ํŒŒ์ผ๊นŒ์ง€ ๋ฐ”์ดํŠธ๊ฐ€ ๊ฐ™๋‹ค. MetaPost ๊ทธ๋ฆผ ํ•˜๋‚˜(ํฌ๋ˆ„์Šค์˜ polyomino.mp).
  • prime-sieve.w โ€” ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด๋ฅผ ๊ตฌ๊ฐ„๋งˆ๋‹ค ํ™€์ˆ˜๋งŒ ๋น„ํŠธ๋กœ ๋‹ด์•„ ๋Œ๋ฆฌ๋ฉฐ 256 ์ด์ƒ์ธ ์†Œ์ˆ˜ ๊ฐ„๊ฒฉ์˜ ๊ธฐ๋ก์„ ์ฐพ๋Š”๋‹ค. ๋‘ ์†Œ์ˆ˜ ์‚ฌ์ด์— ๋ชจ๋‘ 1์ธ 64๋น„ํŠธ ๋‚ฑ๋ง์ด ์žˆ์–ด์•ผ๋งŒ ๊ฐ„๊ฒฉ์„ ์ž์„ธํžˆ ๋ณด๊ณ , 32๋ณด๋‹ค ์ž‘์€ ์†Œ์ˆ˜๋Š” ๋‚ฑ๋ง๋งˆ๋‹ค ๋น„ํŠธ ๋ฌด๋Šฌ๋ฅผ ๋Œ๋ ค ์ฐ๋Š”๋‹ค. ํฌ๋ˆ„์Šค์˜ 2017๋…„ CWEB ํ”„๋กœ๊ทธ๋žจ์„ ์˜ฎ๊ฒผ๋‹ค. ํฌ๋ˆ„์Šค๊ฐ€ ๋ฏธ์‹ฌ์ฉ์–ดํ•œ ๊ตฌ๊ฐ„ ๊ฒฝ๊ณ„์˜ ๊ฐ„๊ฒฉ ๋…ผ๋ฆฌ๋Š” ๊ตฌ๊ฐ„ ํฌ๊ธฐ๋ฅผ 128๊นŒ์ง€ ์ค„์—ฌ ์‹œํ—˜ํ•ด ๋ณด๋‹ˆ ์˜ณ์•˜๋‹ค. ๋ช…๋ น์ค„ ๊ฒ€์‚ฌ์˜ ๊ฒฐํ•จ ๋‘˜์„ ๊ณ ์ณค๋‹ค. sโ‚€ยฒ์ด 64๋น„ํŠธ์—์„œ ๋„˜์ณ 2ยณยฒ์˜ ๋ฐฐ์ˆ˜์ธ ์ถœ๋ฐœ์ ์„ ๊ฑฐ์ ˆํ•˜๋Š” ๊ฒƒ๊ณผ, ์Œ์ˆ˜ t์—์„œ 0์œผ๋กœ ๋‚˜๋ˆ„๊ณ  ๋ฐฐ์—ด ๋ฐ–์„ ์ฝ๋Š” ๊ฒƒ์ด๋‹ค. ์ด์ง„ ๋กœ๊ทธ ํ‘œ๋Š” math/bits๋กœ ๋ฐ”๊พธ์—ˆ๋‹ค. ์›๋ณธ์€ ํŒŒ์ด์ฌ ๊ตฌ๊ฐ„ ์ฒด์™€ 1197๊ฑด์—์„œ ๋งž์•˜๊ณ , ์ด ํŒ์€ ์›๋ณธ๊ณผ 621๊ฑด์—์„œ ๊ณ ์นœ ๋‘ ๊ฒฝ์šฐ๋งŒ ๋นผ๊ณ  ๋ฐ”์ดํŠธ๊นŒ์ง€ ๊ฐ™๋‹ค. MetaPost ๊ทธ๋ฆผ ํ•˜๋‚˜.
  • prjeuler152.w โ€” Project Euler 152๋ฒˆ ๋ฌธ์ œ. ํ•ต์‹ฌ์ด์ž ์žฌ๋ฏธ๋Š” ํ•ฉ์„ ๋ถ€๋™์†Œ์ˆ˜์ ์œผ๋กœ ๊ฒฌ์ค„ ์ˆ˜ ์—†๋‹ค๋Š” ๋ฐ ์žˆ๋‹ค. $1/n^2$ ํ•ญ์„ ๋”ํ•  ๋•Œ๋Š” ์ •ํ™•ํ•œ ์œ ๋ฆฌ์ˆ˜ ์—ฐ์‚ฐ์ด ํ•„์š”ํ•˜๊ณ , $2^{79}$๊ฐœ์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ์„ ๋ชจ๋‘ ๋„๋Š” ๋ฌด์ฐจ๋ณ„ ๋ฐฉ๋ฒ•์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
  • queenon-partition.w โ€” ๋งˆ์ดํด ์‹ฌํ‚จ์ด nร—n ๊ฒฉ์ž๋ฅผ ๋‹ค์ด์•„๋ชฌ๋“œ๋กœ ์ž๋ฅด๊ณ  45ยฐ ๋Œ๋ฆฐ 2Nร—2N ๊ฒฉ์ž๋กœ ๋ณด๋‚ด๋Š” ๋ฌ˜ํ•œ ์‚ฌ์ƒ์„ ๋‹ค๋ฃจ๋Š”๋ฐ, 2021๋…„์— ๊ทธ๊ฐ€ n-ํ€ธ ๊ฐœ์ˆ˜์˜ ์ ๊ทผ์„ ์–ป์„ ๋•Œ ์“ด ์นธ ๋‚˜๋ˆ„๊ธฐ๋‹ค. ๊ทœ์น™, ๊ณง *(ij)*์™€ ๋„“์ด๊ฐ€ ์–‘์ˆ˜์ธ ๋ถ€๋ถ„์„ ๋‚˜๋ˆ„๋Š” ์นธ ๊ฐ€์šด๋ฐ ๊ฐ€์žฅ ์ž‘์€ I๋ฅผ ์žก๊ณ  ๋น„๊ธฐ๋ฉด ๋” ํฐ J๋ฅผ ์žก๋Š”๋‹ค๋Š” ๊ทœ์น™์€, ์Œ์„ I<<16 - J๋กœ ๋‹ด์•„ ์ตœ์†Œ๋ฅผ ์ง€ํ‚ค๋ฉด ์ €์ ˆ๋กœ ๋‚˜์˜จ๋‹ค. ๋„“์ด ์ž์ฒด๋Š” nNร—nN ํ”ฝ์…€ ๊ฒฉ์ž ์œ„์˜ ๋ฌด์ฐจ๋ณ„ ์…ˆ์œผ๋กœ ์ •ํ•œ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์€ ๊ทธ ๋ฐฐ์ •์„ ๊ทธ๋ฆฌ๋Š” MetaPost ํŒŒ์ผ์„ ๋ฝ‘์•„๋‚ด๋Š”๋ฐ, Go์˜ ๋‚ ๋ฌธ์ž์—ด์ด fprintf ์Šค๋ฌผ ๋ช‡ ๊ฐœ๋ฅผ ๋Œ€์‹ ํ•˜๋‹ˆ MetaPost๋ฅผ MetaPost๋กœ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค. CWEB ์›๋ณธ๊ณผ (N, n) ์Œ 649๊ฐ€์ง€์—์„œ ํ‘œ์ค€ ์ถœ๋ ฅ๊ณผ ๋ฝ‘์•„๋‚ธ .mp์™€ ์ข…๋ฃŒ ์ฝ”๋“œ๊ฐ€ ๋ฐ”์ดํŠธ๊นŒ์ง€ ๊ฐ™๋‹ค. ๊ธ€ ์•ˆ์— ๋‹ด๊ธด luamplib ๊ทธ๋ฆผ ๋‘˜.
  • sliding.w โ€” ๋ฏธ๋‹ซ์ด ๋ธ”๋ก ํผ์ฆ์„ ๋‘๋ฃจ ํ‘ธ๋Š” ์—”์ง„์ด๋‹ค. 0/1 ๋ฌด๋Šฌ๋กœ ์ฃผ๋Š” ์กฐ๊ฐ์ด 15์ข…๋ฅ˜๊นŒ์ง€, ์ฃฝ์€ ์นธ์ด ์žˆ๋Š” ํŒ, ๊ทธ๋ฆฌ๊ณ  ์ด๋™ ๋ฐฉ์‹์ด ์—ฌ์„ฏ์ด๋‹ค. ์กฐ๊ฐ ํ•˜๋‚˜๋ฅผ ํ•œ ์นธ, ์กฐ๊ฐ ํ•˜๋‚˜๋ฅผ ๊ณง๊ฒŒ ์•„๋ฌด ๊ฑฐ๋ฆฌ๋‚˜, ์กฐ๊ฐ ํ•˜๋‚˜๋ฅผ ์•„๋ฌด ๊ธธ๋กœ๋‚˜, ๊ทธ๋ฆฌ๊ณ  ์ €๋งˆ๋‹ค์˜ "์ดˆ์กฐ๊ฐ" ํŒ์œผ๋กœ ๋ธ”๋ก ๋ช‡ ๊ฐœ๊ฐ€ ํ•จ๊ป˜ ๋ฏธ๋„๋Ÿฌ์ง€๋Š” ๊ฒƒ์ด๋‹ค. ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰์€ ๊ฑฐ๋ฆฌ ์ธต์„ ๋งˆ์ง€๋ง‰ ์…‹๋งŒ ๋“ค๊ณ  ์žˆ๋Š”๋ฐ, ํฌ๊ธฐ๊ฐ€ ์ œ๊ฐ๊ฐ์ธ ๊พธ๋Ÿฌ๋ฏธ๋ฅผ ์ƒ๋Œ€ ํ•ด์‹œ ์‚ฌ์Šฌ ๊ณ ๋ฆฌ๋กœ ์—ฎ์€ ์ˆœํ™˜ ํ‘œ์— ๋‹ด๊ณ , ์ด๊ธฐ๋Š” ์ˆ˜์ˆœ๋„ ๋˜์ฐพ๋Š”๋‹ค. ํ‘œ๊ฐ€ ์ฒ˜์Œ์„ ์žŠ์—ˆ์œผ๋ฉด ๋” ๊ฐ€๊นŒ์šด ๋ชฉํ‘œ๋กœ ๋‹ค์‹œ ์‹œ์ž‘ํ•œ๋‹ค. ์ดˆ์กฐ๊ฐ์€ "๋ถ€๋”ชํžŒ๋‹ค" ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์˜ ์ด์ƒ์ด๊ณ , ๋ง๋”ํ•œ ๋ฐฑํŠธ๋ž˜ํ‚น์ด ๊ทธ๊ฒƒ์„ ๋งŒ๋“ค์–ด ๋‚ธ๋‹ค. ์˜ฎ๊ธฐ๋‹ค๊ฐ€ ์ง„์งœ ๊ฒฐํ•จ์„ ๋งŒ๋‚ฌ๋‹ค. ๋ฐฉ์‹ 5์—์„œ ํฌ๋ˆ„์Šค๋Š” ๊ฐ™์€ ์•ž ๋ฐฐ์น˜์—์„œ ์ด๋ฏธ ๋‹ฟ์€ ๋ฐฐ์น˜๋ฅผ ๋งŒ๋‚˜๋ฉด ๋” ๋‚˜์•„๊ฐ€์ง€ ์•Š๋Š”๋ฐ, ๊ทผ๊ฑฐ๋Š” ์กฐ๊ฐ ํ•˜๋‚˜๋งŒ ์›€์ง์˜€๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์กฐ๊ฐ ํ•˜๋‚˜์—๋Š” ๋งž์ง€๋งŒ ์ดˆ์กฐ๊ฐ์—๋Š” ํ‹€๋ฆฌ๋‹ค. ๋ชจ์–‘์ด ๊ฐ™์€ ์กฐ๊ฐ์ด ์žˆ์œผ๋ฉด ์„œ๋กœ ๋‹ค๋ฅธ ์ดˆ์กฐ๊ฐ์ด ๊ฐ™์€ ๋ฐฐ์น˜์— ์ด๋ฅผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์›๋ณธ์€ ๋ฐฐ์น˜๋ฅผ ํ•œ ์ธต ๋Šฆ๊ฒŒ ๋†“๊ณ (๋ฌด์ž‘์œ„ 1800๋ฒˆ ๊ฐ€์šด๋ฐ 8๋ฒˆ), 4์ˆ˜๋ฉด ๋˜๋Š” ๊ฒƒ์„ 5์ˆ˜๋ผ๊ณ  ๋‹ตํ•  ์ˆ˜ ์žˆ๋‹ค. ์ดˆ์กฐ๊ฐ๋งˆ๋‹ค ๋„์žฅ์„ ์ฐ์–ด ๊ณ ์นœ๋‹ค. ํ•จ๊ป˜ ๊ณ ์นœ ๊ฒƒ์€ ๊พธ๋ฆฐ ๋ฐฐ์น˜๋ฅผ ์ฐ์„ ๋•Œ์˜ ๋ถ€ํ˜ธ ํ™•์žฅ ์˜ค๋ฅ˜์™€, ์ •์˜ํ•˜์ง€ ์•Š์€ ์กฐ๊ฐ ์ด๋ฆ„์„ ๋ง‰์ง€ ์•Š์•„ off[-1]์„ ์ฝ๋Š” ๊ฒƒ์ด๋‹ค. 64๋น„ํŠธ hi/lo ํฌ์ธํ„ฐ ์Œ์€ ๊ทธ๋ƒฅ uint64๊ฐ€ ๋˜์—ˆ๋Š”๋ฐ, ํ›—๋‚ ์˜ ๋…์ž๊ฐ€ ์ด ๋Œ€๋ชฉ์—์„œ ์›ƒ์œผ๋ฆฌ๋ผ๊ณ  ํฌ๋ˆ„์Šค๊ฐ€ ๋ฏธ๋ฆฌ ์ ์–ด ๋‘” ๋ฐ”๋‹ค. ๊ณ ์นœ C์™€ 2178๋ฒˆ์˜ ์‹คํ–‰(์—ฌ์„ฏ ๋ฐฉ์‹, ๋ชจ๋“  ์ž์„ธํžˆ ์ฐ๊ธฐ ๋‹จ๊ณ„)์—์„œ ๋ฐ”์ดํŠธ๊นŒ์ง€ ๊ฐ™๊ณ , ๋”ฐ๋กœ ์ง  ํŒŒ์ด์ฌ ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰๊ธฐ๊ฐ€ ์ธต๋งˆ๋‹ค ํ™•์ธํ•ด ์ค€๋‹ค.
  • spiders.w โ€” ์‚ผ๋ถ€์ž‘์„ ๋‹ซ์œผ๋ฉฐ koda-ruskey์™€ li-ruskey๋ฅผ ๋‚ก์€ ๊ฒƒ์œผ๋กœ ๋งŒ๋“ ๋‹ค. ๊ฐ™์€ ๋ฌธ์ œ, ๊ณง ์™„์ „ ๋น„์ˆœํ™˜ ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์˜ x โ†’ y โŸน ๋น„ํŠธ x โ‰ค ๋น„ํŠธ y๋ฅผ ์ง€ํ‚ค๋Š” 0/1 ๋ผ๋ฒจ๋ง์„ ๋ฟŒ๋ฆฌ ๋น„ํŠธ๊ฐ€ ํ•œ ๋ฒˆ ๋’ค์ง‘ํžˆ๋Š” ๊ทธ๋ ˆ์ด ๊ฒฝ๋กœ๋กœ ๋Š˜์–ด๋†“๋Š” ์ผ์„ ๋‹ค๋ฅธ ์ชฝ์—์„œ ํ‘ผ๋‹ค. ์ค€์ง‘ํ•ฉ U_k/V_k๋ฅผ ์กฐ์ƒ ์‚ฌ์Šฌ์— ์•”๋ฌต์ ์œผ๋กœ ์‹ค์–ด O(nยฒ)์–ด์น˜ ์ง‘ํ•ฉ ์ „๋ถ€๋ฅผ ์„ ํ˜• ์‹œ๊ฐ„๊ณผ ๊ณต๊ฐ„์— ๋‹ด๊ณ , ๋ฐ˜์‚ฌ ๋ถ€ํ˜ธ์˜ ํ™€์ง์„ n๋น„ํŠธ ์‚ฐ์ˆ  ๋Œ€์‹  ueven/veven ํ‘œ ํ•˜๋‚˜์—์„œ ์ฝ์–ด ๋‚ด๋ฉฐ, ๊นจ์–ด ์žˆ๋Š” ๋งˆ๋””์™€ ์ž ๋“  ๋งˆ๋””๊ฐ€ ๋ฒˆ๊ฐˆ์•„ ์žˆ๋Š” ํ™œ์„ฑ ๋ชฉ๋ก์˜ ๋ธ”๋ก์ด ๋ฏธ๋ฃฌ ํ”Œ๋ž˜๊ทธ๋ฅผ ๋‚จ๊ธฐ๋ฉฐ ๋“œ๋‚˜๋“ค์–ด ์ฐธ์œผ๋กœ ๋ฌด๋ฐ˜๋ณต์ธ ์ƒ์„ฑ๊ธฐ๊ฐ€ ๋œ๋‹ค. ์‚ฝ์ž… ์ž๋ฆฌ์— ๋Œ€ํ•œ ํฌ๋ˆ„์Šค์˜ ์›๋ž˜ ์ ํ™”์‹์€ ์Šค๋ฌผ๋‹ค์„ฏ ํ•ด ๋™์•ˆ ํ‹€๋ฆฐ ์ฑ„์˜€๊ณ  ๊ผญ์ง“์  ๋‹ค์„ฏ ๊ฐœ์งœ๋ฆฌ ๊ฑฐ๋ฏธ๊ฐ€ ๊ทธ๊ฒƒ์„ ๊นจ๋œจ๋ฆฌ๋Š”๋ฐ, ์ด ๋ฌธ์„œ๋Š” ๊ทธ ์‹คํŒจ์™€ ๊ณ ์นจ์„ ๊ทธ๋ฆผ๊ณผ ํ•จ๊ป˜ ์งš์–ด ๊ฐ„๋‹ค (ํฌ๋ˆ„์Šค๊ฐ€ 2026๋…„ 6์›”์— ๋ฐ›์•„๋“ค์ด๊ณ  ์ด ์ €์žฅ์†Œ ์ง€์€์ด์˜ ๊ณต์œผ๋กœ ์ ์—ˆ๋‹ค). CWEB ์›๋ณธ๊ณผ ๊ผญ์ง“์  7๊ฐœ ์ดํ•˜์ธ ์—ฐ๊ฒฐ๋œ ๊ฑฐ๋ฏธ 10,067๊ฐœ ๋ชจ๋‘์—์„œ -v ์ถœ๋ ฅ๊นŒ์ง€ ๋งž์ถฐ ๋ณด์•˜๋‹ค. MetaPost ๊ทธ๋ฆผ ๋„ท.
  • squint.w โ€” ๊ฒŒ์œผ๋ฅธ ๊ฑฐ๋“ญ์ œ๊ณฑ ๊ธ‰์ˆ˜๋ฅผ ์š”๊ตฌ์— ๋”ฐ๋ผ ์›€์ง์ด๋Š” ์ฑ„๋„ ๊ทธ๋ฌผ๋กœ ๋ณธ๋‹ค(ํ•ฉ, ๊ณฑ, ํ•ฉ์„ฑ, ์—ญ์ˆ˜, ํ•จ์ˆ˜์˜ ์—ญ, ๊ทธ๋ฆฌ๊ณ  exp ๊ฐ™์€ ๋ฏธ๋ถ„ ๋ฐฉ์ •์‹). ๋งคํ‚ฌ๋กœ์ด์˜ Squinting at Power Series๋ฅผ ๋”ฐ๋ฅธ๋‹ค.
  • ssbidiham.w โ€” ssdiham.w๋ฅผ ์–‘๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„๋กœ ๋„“ํ˜€ ํ•ด๋ฐ€ํ„ด ํšŒ๋กœ๋ฅผ ๋ชจ๋‘ ์ฐพ๋Š”๋‹ค. ๋ณ€ ํ•˜๋‚˜์˜ ๋‘ ๋์— <๋‚˜ >๊ฐ€ ๋ถ™์–ด u<<v, u<>v, u><v, u>>v ๋„ค ๊ฐ€์ง€๊ฐ€ ์žˆ๊ณ , ์ด๊ฒƒ๋“ค์€ ๊ฐ๊ฐ ๋ณ€ uโปโ€”vโบ, uโปโ€”vโป, uโบโ€”vโบ, vโปโ€”uโบ๊ฐ€ ๋œ๋‹ค. SGB ํŒŒ์ผ์—์„œ๋Š” ํ˜ธ ๊ธธ์ด๋ฅผ 4๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋กœ ๊ฐ€์ง€๋ฅผ ์ ๋Š”๋‹ค. ์›๋ณธ๊ณผ ๊ทธ๋ž˜ํ”„ 80๊ฐœ, ์„ ํƒํ•ญ ์กฐํ•ฉ 26๊ฐ€์ง€๋กœ ๋ชจ๋‘ 2132๋ฒˆ์„ ๋ฐ”์ดํŠธ๊นŒ์ง€ ๊ฒฌ์ฃผ์—ˆ๋‹ค. ์›๋ณธ์ด ์„ผ ํ•ด์˜ ์ˆ˜๋„ ์ „์ˆ˜ ํƒ์ƒ‰๊ณผ 63๊ฐœ ๊ทธ๋ž˜ํ”„์—์„œ ๋งž์ถฐ ๋ณด์•˜๋‹ค. ์›๋ณธ์ด ๋งˆ๋”” ์—†๋Š” ๊ทธ๋ž˜ํ”„์—์„œ ์ฃฝ๋Š” ๊ฒƒ์€ ๊ณ ์ณค๋‹ค. ๊ฐ™์€ ๋ถ€ํ˜ธ๋ผ๋ฆฌ ์ž‡๋Š” ๋ณ€์ด ์ƒ๊ธฐ๋ฏ€๋กœ ์›๋ณธ์˜ "g๋Š” ์ด๋ถ„ ๊ทธ๋ž˜ํ”„" ๋ฌธ์žฅ์ด ํ‹€๋ ธ๋‹ค๋Š” ๊ฒƒ๋„ ์ ์—ˆ๋‹ค. MetaPost ๊ทธ๋ฆผ ํ•˜๋‚˜.
  • ssdiham.w โ€” ssham.w์˜ ์œ ํ–ฅํŒ์œผ๋กœ, ์œ ํ–ฅ ๊ทธ๋ž˜ํ”„์˜ ํ•ด๋ฐ€ํ„ด ํšŒ๋กœ๋ฅผ ๋ชจ๋‘ ์ฐพ๋Š”๋‹ค. ์นดํ”„(1972)์˜ ๋ฐ”๊ฟˆ์„ ์ข‡์•„ ๋งˆ๋”” v๋ฅผ vโป์™€ vโบ๋กœ ์ชผ๊ฐœ๊ณ  ํ˜ธ uโ†’v๋ฅผ ๋ณ€ uโปโ€”vโบ๋กœ ์‚ผ์œผ๋ฉด, ๊ทธ๋ž˜ํ”„๋Š” ์ด๋ถ„ ๊ทธ๋ž˜ํ”„๊ฐ€ ๋˜๊ณ  ํ•ด๋ฐ€ํ„ด ํšŒ๋กœ๋Š” vโปโ€”vโบ n๊ฐœ๋ฅผ ๋ณดํƒœ๋ฉด ํšŒ๋กœ ํ•˜๋‚˜๊ฐ€ ๋˜๋Š” ์™„์ „ ๋งค์นญ์ด ๋œ๋‹ค. ์ด์ œ๋Š” ์ฐจ์ˆ˜๊ฐ€ 1์ธ ๋งจ๋ชธ ๋งˆ๋””๊ฐ€ ๋ฐฉ์•„์‡ ๋ฅผ ๋‹น๊ธด๋‹ค. ์ž…๋ ฅ์€ SGB .gb ํŒŒ์ผ์ด๊ณ  go-sgb์˜ gbsave.RestoreGraph๋กœ ์ฝ๋Š”๋‹ค. ssham.w์™€ ๋‹ฌ๋ฆฌ ๋ง๊ณผ ์ข…๋ฃŒ ๋ถ€ํ˜ธ๋ฅผ ์›๋ณธ ๊ทธ๋Œ€๋กœ ๋‘์–ด, CWEB ์›๋ณธ๊ณผ ๊ทธ๋ž˜ํ”„ 75๊ฐœ, ์„ ํƒํ•ญ ์กฐํ•ฉ 26๊ฐ€์ง€๋กœ ๋ชจ๋‘ 1962๋ฒˆ์„ ๋ฐ”์ดํŠธ๊นŒ์ง€ ๊ฒฌ์ฃผ์—ˆ๋‹ค. ํ•ด, ์ž์„ธํ•œ ๊ธฐ๋ก, ์˜†๋ชจ์Šต, ์ง„ํ–‰ ๋ณด๊ณ , mem ์ˆ˜, gb_flip ๋ฌด์ž‘์œ„ํ™”๊ฐ€ ๋ชจ๋‘ ๊ฐ™๋‹ค. 6ร—6 ๋‚˜์ดํŠธ ๊ทธ๋ž˜ํ”„์—์„œ๋Š” ssham.w๊ฐ€ ์„ผ 9862์˜ ๊ผญ ๋‘ ๋ฐฐ์ธ ํšŒ๋กœ 19724๊ฐœ๋ฅผ ์ฐพ๋Š”๋‹ค. MetaPost ๊ทธ๋ฆผ ํ•˜๋‚˜.
  • ssham.w โ€” ๊ทธ๋ž˜ํ”„์˜ ํ•ด๋ฐ€ํ„ด ์ˆœํ™˜์„ ๋ชจ๋‘ ์ฐพ๋Š”๋ฐ, ๋ถ€๋ถ„ ๊ฒฝ๋กœ์˜ ๋ณ€์„ ๊ทธ๊ฒƒ์ด ๋งˆ์ง€๋ง‰ ์ˆœํ™˜์˜ ์–ด๋””์— ๋†“์ผ์ง€ ๋ชจ๋ฅธ ์ฑ„ ๊ณ ๋ฅด๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์“ด๋‹ค. ์…€๋น„์˜ 1970๋…„ ์ฐฉ์ƒ์ด๊ณ , ํฌ๋ˆ„์Šค๊ฐ€ 2001๋…„์— ๋ชจ๋“  ๋ถ€๋ถ„ ๊ฒฝ๋กœ์˜ ์ง€์œ„๊ฐ€ ๊ฐ™์€ ๋” ๋Œ€์นญ์ ์ธ ๊ผด๋กœ ๋‹ค์‹œ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. ํฌ๋ˆ„์Šค์˜ SGB ์‹œ์—ฐ ํ”„๋กœ๊ทธ๋žจ SHAM๊ณผ ํ—ท๊ฐˆ๋ฆฌ์ง€ ๋งˆ์‹œ๋ผ. ์„ธ ๊ธ€์ž๊ฐ€ ๊ฐ™์„ ๋ฟ ์ „ํ˜€ ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์ค„์–ด๋“œ๋Š” ๊ทธ๋ž˜ํ”„๋Š” ์„ฑ๊ธด ์ง‘ํ•ฉ(nbr/adj, adj๋Š” ์ธ์ ‘ ํ–‰๋ ฌ ๋…ธ๋ฆ‡๋„ ๊ฒธํ•œ๋‹ค)์— ๋‹ด๊ธฐ๊ณ , ๊ผญ์ง“์ ์€ ๋งจ, ๋ฐ”๊นฅ, ์•ˆ ๊ฐ€์šด๋ฐ ํ•˜๋‚˜์ด๋ฉฐ, ์ฐจ์ˆ˜๊ฐ€ 2์ธ ๋งจ ๊ผญ์ง“์ ์€ trigger ๋ชฉ๋ก์— ์˜ฌ๋ผ ์ œ ๋ณ€ ๋‘˜์„ ๊ฐ•์ œํ•œ๋‹ค. ์ž…๋ ฅ์€ SGB .gb ํŒŒ์ผ์ด๊ณ  go-sgb์˜ gbsave.RestoreGraph๋กœ ์ฝ๋Š”๋‹ค. ๋˜ go-sgb์˜ gbbasic.Board์™€ gbsave.SaveGraph๋Š” C SGB์™€ ๋ฐ”์ดํŠธ๊นŒ์ง€ ๊ฐ™์€ ํŒŒ์ผ์„ ์“ด๋‹ค. ์›๋ณธ์—์„œ goto์˜ ๊ฑฐ๋ฏธ์ค„์€ ๊ทธ๋Œ€๋กœ ์˜ฎ๊ฒจ ์˜ค๊ณ , ์ด๋ฆ„ํ‘œ ํ•˜๋‚˜๋งŒ ๋” ์žˆ์œผ๋ฉด ๋œ๋‹ค(Go๋Š” ๋ธ”๋ก ์•ˆ์œผ๋กœ ๋›ฐ์–ด๋“ค ์ˆ˜ ์—†๋‹ค). CWEB ์›๋ณธ๊ณผ ๊ทธ๋ž˜ํ”„ยท์„ ํƒ์ง€ ์Œ 845๊ฐ€์ง€์—์„œ ๋งž์ถฐ ๋ณด์•˜๋‹ค. ๋‹ต๊ณผ ์ž์„ธํ•œ ๊ธฐ๋ก๊ณผ ํ”„๋กœํŒŒ์ผ๊ณผ ์ง„ํ–‰ ๋ฌธ์ž์—ด๊ณผ mem ์ˆ˜๊ฐ€ ๋ชจ๋‘ ๊ฐ™๊ณ  gb_flip ๋ฌด์ž‘์œ„ํ™”๊นŒ์ง€ ๊ฐ™๋‹ค. 6ร—6 ๋‚˜์ดํŠธ ๊ทธ๋ž˜ํ”„๋Š” ์–‘์ชฝ ๋ชจ๋‘ 2265+4671495 mems์— ์ˆœํ™˜ 9862๊ฐœ๋ฅผ ์ค€๋‹ค.
  • tarjan-strong-and-weak.w โ€” ์•Œ๊ณ ๋ฆฌ์ฆ˜ 7.4.1.2T๋ฅผ ๋‹ค์‹œ ๋‹ค๋ฃจ๋˜ ์ด๋ฒˆ์—๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ 7.4.1.2W๋ฅผ ๋‚˜๋ž€ํžˆ ์‹ฃ๋Š”๋‹ค. ํฌ๋ˆ„์Šค์˜ ์•ฝํ•œ ์„ฑ๋ถ„์€ ํ”ํžˆ ๋งํ•˜๋Š” ์•ฝ์—ฐ๊ฒฐ ์„ฑ๋ถ„์ด ์•„๋‹ˆ๋‹ค. ํ˜ธ๊ฐ€ ์—†๋Š” ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์—๋Š” ํ•˜๋‚˜๋ฟ์ด๊ณ , ๊ผญ์ง“์  k๊ฐœ์งœ๋ฆฌ ๊ฒฝ๋กœ์—๋Š” k๊ฐœ๋‹ค. ํ”ํ•œ ์ชฝ์€ ๊ทธ๊ฐ€ ๋ฌดํ–ฅ ์„ฑ๋ถ„์ด๋ผ ๋ถ€๋ฅธ๋‹ค. ์•ฝํ•œ ๋™์น˜๋Š” "์„œ๋กœ ๋‹ฟ์„ ์ˆ˜ ์žˆ๊ฑฐ๋‚˜ ์„œ๋กœ ๋‹ฟ์„ ์ˆ˜ ์—†๋‹ค"์˜ ์ถ”์ด ํํฌ์ด๊ณ (๊ทธ๋ ˆ์ด์—„, ํฌ๋ˆ„์Šค, ๋ชจ์ธ ํ‚จ, 1972), ์‘์ถ• ๊ทธ๋ž˜ํ”„ ์œ„์—์„œ๋Š” ์ •ํ™•ํžˆ ๋น„๊ต ๋ถˆ๊ฐ€๋Šฅ ๊ทธ๋ž˜ํ”„์˜ ์—ฐ๊ฒฐ์„ฑ์ด๋‹ค. ๊ณง ๋‹ฟ์Œ ํฌ์…‹์˜ ๊ฐ€์žฅ ์ž˜๊ฒŒ ๋‚˜๋ˆˆ ์„œ์ˆ˜ ๋ถ„ํ•ด Pโ‚ โŠ• Pโ‚‚ โŠ• โ‹ฏ โŠ• Pโ‚˜์˜ ํ•œ ๋ธ”๋ก์ด๊ณ , ํฌ๋ˆ„์Šค์˜ ์ƒ‰์ธ์€ ์ด๊ฒƒ์„ ํฌ์…‹์˜ ์ง๋ ฌ ๋ถ„ํ•ด๋ผ ๋ถ€๋ฅธ๋‹ค. (์ •์˜๋Š” ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ฑฐ๊พธ๋กœ ์•Œ์•„๋‚ธ ๋’ค ์•ฝํ•œ ์„ฑ๋ถ„์ด 1๊ฐœ์—์„œ 20๊ฐœ์ธ ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„ 2500๊ฐœ์— ๋ฌด์ฐจ๋ณ„ ์…ˆ์œผ๋กœ ๋งž์ถฐ ๋ณด๊ณ , ํ”„๋ฆฌํŒจ์‹œํด 12a๋กœ ํ™•์ธํ–ˆ๋‹ค.) ๊ทธ ๊ด€์ ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ฝ์„ ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ ๋‹ค. ๋ธ”๋ก์€ ํƒ€์ž”์ด ๋‚ด๋†“๋Š” ์ฐจ๋ก€์—์„œ ์ž‡๋‹ฟ์€ ๊ตฌ๊ฐ„์ด๋ฏ€๋กœ, W๋Š” ์ž˜๋ฆฐ ์ž๋ฆฌ๊ฐ€ ๊ฐ€์žฅ ์ƒˆ ์„ฑ๋ถ„ ์œ„์— ๋งž๋Š”์ง€๋งŒ ๋ฌผ์œผ๋ฉด ๋œ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ๋Š” ์œ„ ๋ธ”๋ก์˜ ์›์ฒœ์ด ๋ชจ๋‘ ๋งž์•˜๋Š”์ง€ ๋ฌป๋Š”๋ฐ, ํƒ€์ž”์˜ HIT/WHIT ๊ฒŒ์œผ๋ฅธ ์‚ญ์ œ๊ฐ€ ์ •ํ™•ํ•˜๊ฒŒ ์ง€์ผœ ์ฃผ๋Š” ์›์ฒœ ๋ชฉ๋ก์„ ๋”ฐ๋ผ ๊ฑท๋Š”๋‹ค. C๊ฐ€ ์“ธ๋ชจ ํ•„๋“œ ๋‹ค์„ฏ ๊ฐœ๋ฅผ ๋” ๊ธ์–ด๋ชจ์œผ๋ ค๊ณ  ๊ทธ๋ฆผ์ž ๊ผญ์ง“์  n+1๊ฐœ๋ฅผ ์žก์•„์•ผ ํ•˜๋Š” ์ž๋ฆฌ์—์„œ, Go์˜ ๋ ˆ์ฝ”๋“œ๋Š” ์•„ํ™‰ ๊ฐœ์— ๊ทธ๋ƒฅ ์ด๋ฆ„์„ ๋ถ™์ธ๋‹ค. C ์›๋ณธ๊ณผ ์ถœ๋ ฅ๊ณผ mems๊ฐ€ ๋ฐ”์ดํŠธ๊นŒ์ง€ ๊ฐ™๋‹ค. SGB์˜ ๋กœ์ œ ๊ทธ๋ž˜ํ”„์™€ ๋ฌด์ž‘์œ„ ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„ 2230๊ฐœ์—์„œ ๋งž์ถฐ ๋ณด์•˜๋Š”๋ฐ, W์˜ ๋ณ‘ํ•ฉ ๋ฐ˜๋ณต๋ฌธ๊ณผ ๊ฒฝ๋กœ ์••์ถ•๋œ src ๊ฑท๊ธฐ๋ฅผ ๊ตด๋ฆฌ๋ ค๊ณ  ์ง€์€ ์‚ฌ์Šฌ๊ณผ ์ถ”์ด ํ† ๋„ˆ๋จผํŠธ์™€ ์ธต์ง„ ๊ทธ๋ž˜ํ”„๋„ ํ•จ๊ป˜ ๋„ฃ์—ˆ๋‹ค. go-sgb๋ฅผ ์“ด๋‹ค. MetaPost ๊ทธ๋ฆผ ๋‘˜์€ tarjan-strong.mp์˜ ๋„์šฐ๋ฏธ๋ฅผ ํ•จ๊ป˜ ์“ด๋‹ค.
  • tarjan-strong.w โ€” ํƒ€์ž”์˜ ๊ฐ•ํ•œ ์„ฑ๋ถ„. ํฌ๋ˆ„์Šค์˜ CWEB tarjan-strong.w(๊ณง ๋‚˜์˜ฌ ํ”„๋ฆฌํŒจ์‹œํด 12a์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ 7.4.1.2T)๋ฅผ ๋”ฐ๋ฅธ๋‹ค. ๊นŠ์ด ์šฐ์„  ํ•œ ๋ฒˆ์œผ๋กœ ๊ฐ•ํ•œ ์„ฑ๋ถ„์„ ๋ชจ๋‘ ์ฐพ๊ณ , ์ฆ์„œ๋„ ํ•จ๊ป˜ ๋‚ด๋†“๋Š”๋‹ค. ์„ฑ๋ถ„๋งˆ๋‹ค ๊ฐ•ํ•œ ์—ฐ๊ฒฐ์„ ์ง€์ผœ ์ฃผ๋Š” tree์™€ inner ํ˜ธ, ๊ทธ๋ฆฌ๊ณ  ์‘์ถ• ๊ทธ๋ž˜ํ”„์˜ ํ˜ธ๋งˆ๋‹ค link ํ•˜๋‚˜๋‹ค. ํฌ๋ˆ„์Šค ์ž์‹ ์˜ ๋…ธํŠธ์—๋Š” ๊ทธ๊ฐ€ ์ฒ˜์Œ์— ์ž˜๋ชป ์žก์•˜๋˜ ๊ทœ์น™, ๊ณง ๋‚˜๋ฌด ์ž์‹์ด LOW๋ฅผ ๋น„๊ธธ ๋•Œ ๋ถ€๋ชจ์˜ ์•ˆ์ชฝ ํ˜ธ๋ฅผ ๋ฒ„๋ฆฌ๋Š” ๊ทœ์น™์ด ์ ํ˜€ ์žˆ๋Š”๋ฐ, ์ด ๋ฌธ์„œ๋Š” ๊ทธ ํ‹€๋ฆฐ ํŒ์„ ์ง€์–ด ๊ทธ์˜ ๋‹ค์„ฏ ํ˜ธ์งœ๋ฆฌ ๋ฐ˜๋ก€์— ๋Œ๋ ค ์‹คํŒจ๋ฅผ ๋˜์‚ด๋ฆฐ๋‹ค. ์—ฌ๊ธฐ์„œ LOW๋Š” ํŒจ์‹œํด์ด ๋‚ด๋ฆฌ๋ง‰ ๊ฒฝ๋กœ์™€ ํ˜ธ์˜ ์„ฑ์ˆ™์œผ๋กœ ์ •์˜ํ•˜๋Š” ์ด๋ธŒโ€“์ฟ ๋ฅดํ‚ค์ˆ˜์˜ค๋‹ˆ์˜ค ํŒ์ด์ง€ ํƒ€์ž”์˜ 1972๋…„ lowlink๊ฐ€ ์•„๋‹ˆ๋‹ค. ๋‚˜๋ฌด๊ฐ€ ์•„๋‹Œ ํ˜ธ vโ†’u๋Š” PRE(u)๊ฐ€ ์•„๋‹ˆ๋ผ LOW(u)๋ฅผ ๋Œ๋ ค์ค€๋‹ค. ๊ทธ๋ž˜์„œ "LOW๊ฐ€ ๊ฐ™์œผ๋ฉด ์„ฑ๋ถ„๋„ ๊ฐ™๋‹ค"๋Š” ๊ฑฐ์ง“์ด๊ณ (๋ฌด์ž‘์œ„ ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„ 500๊ฐœ ๊ฐ€์šด๋ฐ 168๊ฐœ์—์„œ ๊นจ์กŒ๋‹ค), ๊ทธ ๋•Œ๋ฌธ์— ๊บผ๋‚ด๊ธฐ ๊ฒ€์‚ฌ๊ฐ€ โ‰ฅ๋‹ค. ์˜ฎ๊ธด ํŒ์€ C์˜ low/rep ํ•ฉ์ง‘ํ•ฉ์„ ์ฑ…์ด ์ •ํ•œ ๋ถ€ํ˜ธํ™”(ํ•œ ํ•„๋“œ ์•ˆ์˜ SENT + vโ€ฒ)๋กœ ๋ฐ”๊พธ๋Š”๋ฐ, ๊ทธ๋ž˜์•ผ mem ์ˆ˜๊ฐ€ ๋งž๊ณ  ์›๋ณธ์˜ ํฌ์ธํ„ฐ ์ฃผ์†Œ ๊ฒ€์‚ฌ exit(-666)๋„ ์ง€์šธ ์ˆ˜ ์žˆ๋‹ค. C ์›๋ณธ๊ณผ ์ถœ๋ ฅ๊ณผ mems๊ฐ€ ๋ฐ”์ดํŠธ๊นŒ์ง€ ๊ฐ™๋‹ค. SGB์˜ ๋กœ์ œ ๊ทธ๋ž˜ํ”„(๊ผญ์ง“์  1022๊ฐœ, ์„ฑ๋ถ„ 77๊ฐœ)์™€ ๋ฌด์ž‘์œ„ ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„ 1615๊ฐœ์—์„œ ๋งž์ถฐ ๋ณด์•˜๊ณ , ์ฆ์„œ๋Š” ๋‹ค์‹œ 1500๊ฐœ์—์„œ ๋œป์ด ๋งž๋Š”์ง€ ๋”ฐ๋กœ ๊ฒ€์‚ฌํ–ˆ๋‹ค. go-sgb๋ฅผ ์“ด๋‹ค. MetaPost ๊ทธ๋ฆผ ์…‹.
  • topswops.w โ€” ์ฝ˜์›จ์ด์˜ ํ†ฑ์Šค์™‘์Šค ๋†€์ด๋ฅผ ํŽ˜ํผ๋‹ค์ธ์˜ ๊ฑฐ๊พธ๋กœ ํƒ์ƒ‰(๋๋‚œ ์ž๋ฆฌ์—์„œ ๋†€์ด๋ฅผ ๊ฑฐ๊พธ๋กœ ๋Œ๋ฆฐ๋‹ค)์œผ๋กœ ํ‘ผ๋‹ค. ํฌ๋ˆ„์Šค์˜ CWEB topswops.w๋ฅผ ๋‹ค์‹œ ํ’€์–ด ์“ด ํ•œ๊ธ€ ๋ฌธํ•™์  ์—์„ธ์ด์ด๊ณ , MetaPost ๊ทธ๋ฆผ(๋†€์ด ํ•œ ํŒ๊ณผ n=3์˜ ๊ฑฐ๊พธ๋กœ ํƒ์ƒ‰ ๋‚˜๋ฌด ์ „์ฒด)๊ณผ ์ฝ˜์›จ์ด์˜ ๋ฉˆ์ถค ๋…ผ์ฆ์— ๋Œ€ํ•œ ์ฆ๋ช…์ด ๋”ธ๋ ค ์žˆ๋‹ค.
  • topswops_fwd.w โ€” ๊ฐ™์€ ๋†€์ด๋ฅผ ์•ž์œผ๋กœ ํ‘ผ๋‹ค. ์ž๋ฆฌ ํ‘œ์‹œ ์นด๋“œ์™€ f(m) ๊ฐ€์ง€์น˜๊ธฐ ํ•œ๊ณ„๋ฅผ ์“ฐ๋Š” ๋ถ„๊ธฐ ํ•œ์ • ํƒ์ƒ‰์ด๊ณ , goto ์ƒํƒœ ๊ธฐ๊ณ„๋กœ ์ผ๋‹ค. ํฌ๋ˆ„์Šค์˜ CWEB topswops-fwd.w๋ฅผ ๋‹ค์‹œ ํ’€์–ด ์“ด ํ•œ๊ธ€ ๋ฌธํ•™์  ์—์„ธ์ด์ด๊ณ , MetaPost ๊ทธ๋ฆผ(์ด๋ฆ„ํ‘œ ๋‹ค์„ฏ ๊ฐœ์งœ๋ฆฌ ์ƒํƒœ ๊ธฐ๊ณ„์™€ ๊ฐ€์ง€์น˜๊ธฐ ํ•œ๊ณ„)์ด ๋”ธ๋ ค ์žˆ๋‹ค.
  • ulam-gibbs.w โ€” ์šธ๋žŒ ์ˆ˜(1, 2, 3, 4, 6, 8, 11, โ€ฆ โ€” ์ €๋งˆ๋‹ค ์•ž์„  ๋‘ ์ˆ˜์˜ ํ•ฉ์œผ๋กœ ๋‚˜ํƒ€๋‚˜๋Š” ๋ฐฉ๋ฒ•์ด ๊ผญ ํ•˜๋‚˜์ธ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜)๋ฅผ ํ•„๋ฆฝ ๊น์Šค์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ์ˆ˜์‹ญ์–ต ๊ฐœ ์…ˆํ•œ๋‹ค. ์Šˆํƒ€์ด๋„ˆ๋ฒ ๋ฅด๊ฑฐ๋Š” ฮป โ‰ˆ 2.443443์— ๋Œ€ํ•ด U_n/ฮป mod 1์ด ๊ฑฐ์˜ ์–ธ์ œ๋‚˜ [1/3..2/3]์— ๋–จ์–ด์ง€๋Š” ๊ฒƒ์„ ์•Œ์•„์ฑ˜๊ณ , ๊น์Šค๋Š” ๊ทธ๊ฒƒ์„ O(N) ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๋ฐ”๊พธ์—ˆ๋‹ค. ํ›„๋ณด๋งˆ๋‹ค ์ตœ๊ทผ ์šธ๋žŒ ์ˆ˜์˜ ์ฐฝ ์œ„์—์„œ ์งง์€ ๋ฌด์ฐจ๋ณ„ ํƒ์ƒ‰์„ ํ•˜๊ฑฐ๋‚˜ ์งง๊ฒŒ ์ •๋ ฌ๋œ ์ด์ƒ๊ฐ’ ๋ชฉ๋ก์— ๊ธฐ๋Œ€์–ด ํŒ์ •ํ•˜๊ณ , ๋ฐ”์ดํŠธ๋‹น 18๋น„ํŠธ ๋ถ€ํ˜ธํ™”๊ฐ€ ์šธ๋žŒ ์—ฌ๋ถ€ ํ‘œ๋ฅผ .778N ๋ฐ”์ดํŠธ์— ๊พธ๋ฆฐ๋‹ค. ์˜ฎ๊ธฐ๋‹ค๊ฐ€ CWEB ์›๋ณธ์˜ ์ง„์งœ ๊ฒฐํ•จ์„ ๋งŒ๋‚ฌ๋‹ค. ์ค„ else @<outlier tests@>;๊ฐ€ ์ค‘๊ด„ํ˜ธ ์—†์ด ์งœ์ด๋Š” ํƒ“์— else๊ฐ€ ์ฒซ ๋ฌธ์žฅ๋งŒ ๋‹ค์Šค๋ฆฌ๊ณ , ํ‘œํ˜„์„ ์ฐพ์ง€ ๋ชปํ•œ ๋ฌด์ฐจ๋ณ„ ํƒ์ƒ‰ ๋’ค์—๋Š” ์–ธ์ œ๋‚˜ ๋‚ก์€ ํ•œ๊ณ„๋ฅผ ๋‹จ ์ฑ„ ๋‹ป ๋ฐ˜๋ณต๋ฌธ๊นŒ์ง€ ๋Œ์•„๊ฐ„๋‹ค. ๊ธฐ๋ณธ ฮป์—์„œ๋Š” ๊ทธ๋Ÿฐ ์ผ์ด ํ•œ ๋ฒˆ(u = 25) ์ผ์–ด๋‚˜๊ณ  ํƒˆ์ด ์—†์ง€๋งŒ, ์„ฑ๊ธด ๊ทผ์‚ฟ๊ฐ’์—์„œ๋Š” C ํ”„๋กœ๊ทธ๋žจ์ด ํ‹€๋ฆฐ ์šธ๋žŒ ์ˆ˜๋ฅผ ์ฐ๋Š”๋‹ค. ์„ ํƒ์ง€ p22 q9๋Š” Uโ‚‡โ‚€โ‚€๋ถ€ํ„ฐ ์–ด๊ธ‹๋‚œ๋‹ค. ์ค‘๊ด„ํ˜ธ๊ฐ€ ๋ฐ˜๋“œ์‹œ ์žˆ์–ด์•ผ ํ•˜๋Š” GoํŒ์€ ๊ณง์ด๊ณง๋Œ€๋กœ ์„ผ ๊ฒƒ๊ณผ ๋งž๋Š”๋‹ค. ์ค‘๊ด„ํ˜ธ๋ฅผ ๋˜์‚ด๋ฆฐ C ์›๋ณธ๊ณผ ์„ ํƒ์ง€ ์กฐํ•ฉ 47๊ฐ€์ง€์—์„œ ๋งž์ถฐ ๋ณด์•˜๊ณ , ํ‘œ์ค€ ์ถœ๋ ฅ๊ณผ ํ‘œ์ค€ ์˜ค๋ฅ˜์™€ mems์™€ METAPOST ํžˆ์Šคํ† ๊ทธ๋žจ์ด ๋ชจ๋‘ ๊ฐ™๋‹ค. N = 10โถ์— ๋Œ€ํ•ด ํ”„๋กœ๊ทธ๋žจ์ด ๊ทธ๋ฆฌ๋Š” ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋ฌธ์„œ์˜ ๊ทธ๋ฆผ์œผ๋กœ ์‹ค์—ˆ๋‹ค.
  • whirlpool-count.w โ€” mร—n ํ–‰๋ ฌ์˜ 2ร—2 ๋ถ€๋ถ„ํ–‰๋ ฌ๋งˆ๋‹ค ๋„ค ์›์†Œ๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ ๊ฒƒ์—์„œ ๊ฐ€์žฅ ํฐ ๊ฒƒ๊นŒ์ง€ ํ•œ ๋ฐ”ํ€ด ๋„๋Š” ์†Œ์šฉ๋Œ์ด ์ˆœ์—ด์˜ ์ˆ˜๋ฅผ ์„ผ๋‹ค. ์›์†Œ n+1๊ฐœ์˜ ๋ถ€๋ถ„ ์ˆœ์—ด์„ ๋ฐ˜์ „ ์ˆ˜๋กœ ๋บ€ ์ขŒํ‘œ x_j๋กœ ๋‚˜ํƒ€๋‚ด๊ณ , t๋งˆ๋‹ค ๋‹ค๋ฅธ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์ƒ ฮผ_t๋กœ ์˜› ์…ˆ์„ ๋ฎ์–ด์“ฐ์ง€ ์•Š๊ณ  ์ œ์ž๋ฆฌ์—์„œ ์ƒˆ ์…ˆ์„ ์ ๋Š” ๋™์  ๊ณ„ํš๋ฒ•์ด๋‹ค. n-๋ณ€์ด๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ 7.2.1.2X ๋ชจ์–‘์˜ ๋˜์ถ”์ ์œผ๋กœ ํ›‘๋Š”๋‹ค. ํฌ๋ˆ„์Šค์˜ 2020๋…„ CWEB ํ”„๋กœ๊ทธ๋žจ์„ ์˜ฎ๊ฒผ๋‹ค. ์›๋ณธ์€ 8ร—4์™€ 7ร—5์—์„œ ์…ˆ์ด 64๋น„ํŠธ๋ฅผ ๋„˜์–ด ํ‹€๋ฆฐ ๋‹ต์„ ๋‚ด๋ฏ€๋กœ (8ร—4์˜ ์ฐธ๊ฐ’์€ 278588168022148184390533120), ์ด ํŒ์€ ์˜ฌ๋ฆผ์„ ์‚ดํŽด ๋ฉˆ์ถ˜๋‹ค. ๋ถ€๋ถ„ ์ˆœ์—ด ํ‘œํ˜„์˜ ์˜ˆ์™€ ฮป_t์˜ ์‹ ๋“ฑ ์„ค๋ช…์˜ ์ž˜๋ชป๋„ ๊ณ ์ณค๋‹ค. ์ „์ˆ˜ ํƒ์ƒ‰๊ณผ ์—ดํ•œ ๊ฐ€์ง€์—์„œ ๋งž์ถฐ ๋ณด์•˜๊ณ , ์›๋ณธ๊ณผ ํฌ๊ธฐ 29๊ฐ€์ง€์—์„œ ๋ฐ”์ดํŠธ๊นŒ์ง€ ๊ฐ™๋‹ค. MetaPost ๊ทธ๋ฆผ ํ•˜๋‚˜.
  • word-cube-dlx.w โ€” ์•ž์˜ wordcube.w์™€ ๋˜‘๊ฐ™์€ ๋Œ€์นญ ๋‚ฑ๋ง ์ •์œก๋ฉด์ฒด๋ฅผ ๋‚จ์—๊ฒŒ ๋งก๊ธด๋‹ค. ์ด์ชฝ์€ ๋ฌธ์ œ ์ „์ฒด๋ฅผ ์ •ํ™•ํ•œ ๋ฎ๊ฐœ(XCC) ์‚ฌ๋ก€ ํ•˜๋‚˜๋กœ ์˜ฎ๊ฒจ DLX ํŒŒ์ผ๋กœ ์จ ๋‚ธ๋‹ค. ํฌ๋ˆ„์Šค์˜ word-rect-dlx.w ("BACK-MXN-WORDS-NEW์™€ ๊ฒจ๋ฃจ๋ผ๊ณ  ๋งŒ๋“  ๊ฒƒ")๊ฐ€ ํ•˜๋˜ ๋ฐฉ์‹์ด๋‹ค. ์˜ฎ๊ฒจ ๋†“๊ณ  ๋ณด๋ฉด ๋†€๋ž„ ๋งŒํผ ์ž‘๋‹ค. ์ฃผ ํ•ญ๋ชฉ 15๊ฐœ(i <= j์ธ ์ค„๋“ค), ๋ถ€ ํ•ญ๋ชฉ 35๊ฐœ(์นธ๋“ค, ์ •๋ ฌํ•œ ์ฒจ์ž ์„ธ์ง์œผ๋กœ ์ด๋ฆ„์„ ์ง“๋Š”๋‹ค), ๊ทธ๋ฆฌ๊ณ  ์ค„๊ณผ ๋‚ฑ๋ง์˜ ์Œ๋งˆ๋‹ค ์„ ํƒ์ง€ ํ•˜๋‚˜์ธ๋ฐ, ๊ทธ ๋‹ค์„ฏ ์ƒ‰ ํ•ญ๋ชฉ์ด ์–ด๋А ๊ธ€์ž๊ฐ€ ์–ด๋””์— ๋†“์ด๋Š”์ง€ ๋งํ•œ๋‹ค. ์ด๋ฆ„์„ ์ •๋ ฌํ•˜๋Š” ๊ฒƒ์ด ๋Œ€์นญ ์žฅ์น˜์˜ ์ „๋ถ€์ด๊ณ , ๊ทธ๊ฒƒ์„ ๊ฒ€์‚ฌํ•˜๋Š” ์ฝ”๋“œ๋Š” ํ•œ ์ค„๋„ ์—†๋‹ค. ๋ค์ด ๊ณต์งœ๋กœ ๋”ฐ๋ผ์˜จ๋‹ค. ๋‚ฑ๋ง๋งˆ๋‹ค ์ƒ‰ ์—†๋Š” ๋ถ€ ํ•ญ๋ชฉ์„ ํ•˜๋‚˜ ๋‘๋ฉด "์—ด๋‹ค์„ฏ ๋‚ฑ๋ง์ด ๋ชจ๋‘ ๋‹ค๋ฅด๋‹ค"๊ฐ€ ์ฝ”๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ ํ”Œ๋ž˜๊ทธ(-d) ํ•˜๋‚˜๊ฐ€ ๋œ๋‹ค. ์ž˜๋ผ ๋‚ธ ์‚ฌ์ „ ์œ„์—์„œ wordcube์™€ ๋งž์ถฐ ๋ณด์•˜๊ณ (๋‚ฑ๋ง 3000๊ฐœ์—์„œ 3 ๋Œ€ 3, 3500๊ฐœ์—์„œ 83 ๋Œ€ 83, -d๋กœ 60 ๋Œ€ 60), ๋ฝ‘์•„๋‚ธ ๋‹ต๋งˆ๋‹ค 5ร—5ร—5 ๋ฐฐ์—ด๋กœ ๋˜์งš์–ด ์ง€์–ด ์„ธ ์ถ•์„ ๋”ฐ๋ผ ๋‹ค์‹œ ๊ฒ€์‚ฌํ–ˆ์œผ๋ฉฐ, ์ „์ฒด ๋ชฉ๋ก๋„ ๋๊นŒ์ง€ ๋Œ๋ ค ๊ฐ™์€ 83,576๊ฐœ๋ฅผ ์–ป์—ˆ๋‹ค. ๋งˆ์ง€๋ง‰ ์žฅ์€ ๋‘˜์„ ๊ฒจ๋ฃจ๊ฒŒ ํ•œ๋‹ค. ์ถค์ถ”๋Š” ์นธ์ด ๋” ๋‚˜์€ ๋‚˜๋ฌด๋ฅผ ์ณ ๋‚ด๋Š”๋ฐ(๋งˆ๋”” 5710๋งŒ ๊ฐœ ๋Œ€ 9800๋งŒ ๊ฐœ) ์‹œ๊ณ„๋กœ๋Š” ์ง„๋‹ค. ์นธ ํ•ญ๋ชฉ ํ•˜๋‚˜๊ฐ€ 3ยท|W|๊ฐœ์˜ ์„ ํƒ์ง€์— ๋“ค์–ด ์žˆ์–ด์„œ, ์ƒ‰์น  ํ•œ ๋ฒˆ์ด ์ˆ˜์ฒœ ๊ฐœ๋ฅผ ๊ฑท๋Š” ์ž๋ฆฌ์—์„œ ๋ฐฑํŠธ๋ž˜ํ‚น์€ ์ด์ง„ ํƒ์ƒ‰ ํ•œ ๋ฒˆ์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๋ฉด ๋ฎ์ธ ํ•ญ๋ชฉ์ด ๋ชฉ๋ก์„ ์ค„์—ฌ ์ฐจ์ด๊ฐ€ ์ข์•„์ง€๊ธฐ๋Š” ํ•œ๋‹ค(๋‚ฑ๋ง 2000๊ฐœ์—์„œ 92๋ฐฐ, 3500๊ฐœ์—์„œ 39๋ฐฐ, ์ „์ฒด ๋ชฉ๋ก์—์„œ 16๋ฐฐ๋กœ 26๋ถ„ 36์ดˆ ๋Œ€ 1๋ถ„ 41์ดˆ). ๊ทธ ์ž๋ฆฌ์—์„œ ๊ทธ๋ฆฌ๋Š” MetaPost ๊ทธ๋ฆผ ํ•˜๋‚˜์™€ wordcube.mp์—์„œ ๋นŒ๋ ค ์˜จ ๊ทธ๋ฆผ ํ•˜๋‚˜.
  • wordcube.w โ€” ์Šคํƒ ํผ๋“œ ๊ทธ๋ž˜ํ”„๋ฒ ์ด์Šค์˜ ๋‹ค์„ฏ ๊ธ€์ž ๋‚ฑ๋ง 5757๊ฐœ๋กœ ๋Œ€์นญ 5ร—5ร—5 ๋‚ฑ๋ง ์ •์œก๋ฉด์ฒด๋ฅผ ๋ช‡ ๊ฐœ๋‚˜ ์ง€์„ ์ˆ˜ ์žˆ๋Š”๊ฐ€? ์™„์ „ํžˆ ๋Œ€์นญ์ธ ์ •์œก๋ฉด์ฒด๋Š” ์„ธ ์ถ• ์–ด๋А ์ชฝ์œผ๋กœ ์ฝ์–ด๋„ ๊ฐ™์€ ๋‚ฑ๋ง์ด ๋‚˜์˜จ๋‹ค. ๋ง๋”ํ•œ ๋ฐฑํŠธ๋ž˜ํ‚น์ด ์—ด๋‹ค์„ฏ ์ค„์„ ํ–‰ ์šฐ์„ ์œผ๋กœ ์ฑ„์šฐ๋Š”๋ฐ, ์ƒˆ ๋‚ฑ๋ง๋งˆ๋‹ค ์ด๋ฏธ ๋†“์ธ ๊ธ€์ž๊ฐ€ ์ ‘๋‘์‚ฌ๋ฅผ ์ด๋ฃจ๋‹ˆ ๋‚˜๋จธ์ง€๋Š” ์‚ฌ์ „ ์ฐพ๊ธฐ๊ฐ€ ํ•ด ์ค€๋‹ค. ๋‹ต์€ 83,576๊ฐœ๋‹ค(์—ด๋‹ค์„ฏ ๋‚ฑ๋ง์ด ๋ชจ๋‘ ๋‹ฌ๋ผ์•ผ ํ•˜๋ฉด 75,130๊ฐœ). ๊ธฐ๋ณธ ํ”„๋กœ๊ทธ๋žจ์€ ๋ฐฐ์ œ(์ „๋ฐฉ ๊ฒ€์‚ฌ)๋ฅผ ๋”ํ•œ๋‹ค. ๋‚ฑ๋ง์„ ๋†“์„ ๋•Œ๋งˆ๋‹ค ์•„์ง ์ฑ„์šฐ์ง€ ์•Š์€ ์ค„์ด ์‚ฌ์ „์œผ๋กœ ์ฑ„์›Œ์งˆ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ด, ํƒ์ƒ‰ ๋งˆ๋””๋ฅผ 46์–ต ๊ฐœ์—์„œ 9800๋งŒ ๊ฐœ๋กœ ์ณ ๋‚ธ๋‹ค(์ฐจ๋ก€๋กœ ๋Œ๋ ค 1๋ถ„ 30์ดˆ์ฏค). ํ•œ๊ธ€ ๋ฌธํ•™์  ์—์„ธ์ด์ด๊ณ  MetaPost ๊ทธ๋ฆผ์ด ๋”ธ๋ ค ์žˆ๋‹ค. ์ง์ด ๋˜๋Š” ๋ณ€๊ฒฝ ํŒŒ์ผ wordcube-par.ch(gtangle wordcube.w wordcube-par.ch)๋Š” ๊ณ ๋ฃจํ‹ด์œผ๋กœ ๋ณ‘๋ ฌ ๋นŒ๋“œ๋ฅผ ๊ฐˆ๋ผ ๋‚ธ๋‹ค. ์ฒซ ๋‚ฑ๋ง์˜ ์„œ๋กœ ๋…๋ฆฝ์ธ ์„ ํƒ์ด ์ผ๊พผ๋“ค๋กœ ํผ์ ธ ๋‚˜๊ฐ€, ์ฝ”์–ด 10๊ฐœ์—์„œ 13์ดˆ์ฏค์— ๊ฐ™์€ ๋‹ต์„ ์ค€๋‹ค.
  • ziptree.w โ€” ํƒ€์ž”๊ณผ ๋ ˆ๋น„์™€ ํŒ€๋ฉœ์˜ ์งšํŠธ๋ฆฌ. ๊ธฐํ•˜ ๋ถ„ํฌ ๋‚œ์ˆ˜ ๋“ฑ๊ธ‰์œผ๋กœ ์ตœ๋Œ€ ํž™ ์ˆœ์„œ๋ฅผ ์ง€ํ‚ค๋Š” ๋ฌด์ž‘์œ„ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์ด๊ณ (๋น„๊ธฐ๋ฉด ํ‚ค๊ฐ€ ์ž‘์€ ์ชฝ์„ ๋ฏผ๋‹ค), ํšŒ์ „ ๋Œ€์‹  ํƒ์ƒ‰ ๊ฒฝ๋กœ๋ฅผ ์ง€ํผ์ฒ˜๋Ÿผ ์—ด๊ณ  ๋‹ซ์•„ ๊ฐฑ์‹ ํ•œ๋‹ค. ๋…ผ๋ฌธ์˜ ์žฌ๊ท€์  insert, zip, delete๋ฅผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๊ตฌํ˜„ํ•œ ๋’ค ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์•„๋ผ๋Š” ๋‘ ๊ฐ€์ง€๋ฅผ ์ด๋Œ์–ด ๋‚ธ๋‹ค. ์•„๋ ˆ๋‚˜(์ฒจ์ž ๊ธฐ๋ฐ˜, ๋“ฑ๊ธ‰ 1๋ฐ”์ดํŠธ, ๋นˆ์นธ ๋ชฉ๋ก)๋Š” ๋งˆ๋”” ํฌ๊ธฐ๋ฅผ ์ ˆ๋ฐ˜์œผ๋กœ ์ค„์ด๊ณ  ๋ฐฑ๋งŒ ๋งˆ๋”” ๋นŒ๋“œ์˜ ํ• ๋‹น์„ 100๋งŒ ๋ฒˆ์ฏค์—์„œ 40๋ฒˆ์ฏค์œผ๋กœ ์ค„์ธ๋‹ค. ์˜์‚ฌ ๋‚œ์ˆ˜ ๋“ฑ๊ธ‰ ํŒ์€ ๋“ฑ๊ธ‰ ํ•„๋“œ๋ฅผ ์•„์˜ˆ ์—†์•ค๋‹ค(ํ‚ค์—์„œ ์…ˆํ•œ๋‹ค). ๋ช…๋ น go test๋กœ ๋Œ๋ฆฌ๋Š” @(zip_test.go@> ์‹œํ—˜ ํŒŒ์ผ์€ ๋…ผ๋ฌธ์˜ ๊ทธ๋ฆผ 1์„ ์ •ํ™•ํžˆ ๋˜์‚ด๋ฆฌ๊ณ , ์„ธ ํ‘œํ˜„์„ ๊ต์ฐจ ํ™•์ธํ•˜๊ณ , BST์™€ ํž™ ๋ถˆ๋ณ€์‹์„ ํผ์ง•์œผ๋กœ ๊ฒ€์‚ฌํ•˜๊ณ , ํ• ๋‹น์„ ๋ฒค์น˜๋งˆํฌํ•œ๋‹ค.
  • cdq-dc/ โ€” CDQ ๋ถ„ํ•  ์ •๋ณต. ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ ์Œ์˜ ์ง‘ํ•ฉ์„ ๊ฐ€๋ฅด๋Š” ์˜คํ”„๋ผ์ธ ๊ธฐ๋ฒ•์œผ๋กœ, ์•ž์ชฝ ์ ˆ๋ฐ˜์ด ๋’ค์ชฝ ์ ˆ๋ฐ˜์— ์ œ ๋ชซ์„ ๋ฏธ๋ฆฌ ์น˜๋ฅด๊ฒŒ ํ•œ๋‹ค. ๋ฌด๊ธฐ ํ•˜๋‚˜์— ์ถ• ํ•˜๋‚˜๋‹ค. ์ •๋ ฌ, ๋ถ„ํ•  ์ •๋ณต, ํŽœ์œ… ํŠธ๋ฆฌ.
    • flower/ โ€” ๋ค„๊ตฌ P3810, 3์ฐจ์› ๋ถ€๋ถ„ ์ˆœ์„œ. ๊ธฐ๋ฒ• ์ผ๋ฐ˜์„ ๋‹ค๋ฃฌ๋‹ค. ๋ฌด์—‡์ด๊ณ , ์–ธ์ œ ์“ฐ์ด๊ณ , O(n log n log k)์ด๊ณ , ๋ฌด์—‡์„ ๋‚ด์ฃผ์–ด์•ผ ํ•˜๋Š”์ง€.
    • inv/ โ€” ๋ค„๊ตฌ P3157, ๋™์  ์—ญ์œ„. ์‹œ๊ฐ„์„ ์ถ•์œผ๋กœ ์˜ฌ๋ฆฐ๋‹ค.
    • stars/ โ€” POJ 2352, ๋ณ„์˜ ๋“ฑ๊ธ‰. ์ถ•์ด ๋‘˜๋ฟ์ด๋ผ ์ž…๋ ฅ์ด ์ •๋ ฌ์„ ๋Œ€์‹ ํ•˜๊ณ  ํŽœ์œ… ํŠธ๋ฆฌ๋งˆ์ € ์‚ฌ๋ผ์ง„๋‹ค. ๊ธฐ๋ฒ•์˜ ๊ฐ€์žฅ ํ—๋ฒ—์€ ๋ชจ์Šต์ด๋‹ค.
    • robin/ โ€” LightOJ 1112. ๋‹ค๋ฅธ ์…‹์˜ ๋ง ์—†๋Š” ์…‹์งธ ์ถ•์ธ ํŽœ์œ… ํŠธ๋ฆฌ์—๊ฒŒ ๋ฌด๋Œ€๋ฅผ ๋‚ด์ฃผ๋Š” ๊ณ๊ฐ€์ง€๋‹ค.
  • cht/ โ€” ๋ณผ๋ก ๊ป์งˆ ์š”๋ น. ์ด์ฐจ DP ์ „์ด๋ฅผ ์ง์„ ์œผ๋กœ ๋‹ค์‹œ ์ฝ๊ณ , ๊ทธ ์ง์„ ๋“ค์˜ ์•„๋ž˜ ํฌ๋ฝ์„ ์„ ๋ณธ๋‹ค. ๋””๋ ‰ํ„ฐ๋ฆฌ cdq-dc/์˜ ์ง์œผ๋กœ, ๋‹จ์กฐ์„ฑ์„ ํ•œ ์นธ์”ฉ ๋นผ์•—๊ธฐ๋ฉฐ ๊ฐ™์€ ์‚ฌ๋‹ค๋ฆฌ๋ฅผ ๋‚ด๋ ค๊ฐ„๋‹ค.
    • frog/ โ€” ์•ณ์ฝ”๋” EDPC Z, Frog 3. ๊ธฐ๋ฒ• ์ผ๋ฐ˜์„ ๋‹ค๋ฃฌ๋‹ค. ๊ธฐ์šธ๊ธฐ์™€ ์งˆ์˜๊ฐ€ ๋ชจ๋‘ ๋‹จ์กฐ๋ผ ๋ฑ์ด ๊ป์งˆ์„ ๋“ค๊ณ  ์ „์ฒด๊ฐ€ O(n)์ด๋‹ค.
    • bridge/ โ€” CEOI 2017 Building Bridges. ๋‹จ์กฐ์„ฑ์ด ๋‘˜ ๋‹ค ๊นจ์ ธ ๋ฑ ๋Œ€์‹  ๋ฆฌ์ฐจ์˜ค ํŠธ๋ฆฌ๊ฐ€ ๋“ค์–ด์„œ๊ณ , ๊ต์  ๋Œ€์‹  ๊ฐ’์„ ๊ฒฌ์ฃผ๋‹ˆ 128๋น„ํŠธ ์‚ฐ์ˆ ์ด ๋ฌผ๋Ÿฌ๋‚œ๋‹ค.
    • cash/ โ€” NOI 2007 Cash. CDQ ๋ถ„ํ•  ์ •๋ณต์ด ์„ธ์ƒ์— ๋‚˜์˜ฌ ๋•Œ ํ•จ๊ป˜ ์˜จ ๋ฌธ์ œ๋‹ค. ๋‘ ๊ฐˆ๋ž˜๊ฐ€ ์—ฌ๊ธฐ์„œ ๋งŒ๋‚œ๋‹ค. ์‹œ๊ฐ„์— ๋Œ€ํ•œ ์žฌ๊ท€, ์œ„๋กœ ์˜ฌ๋ผ๊ฐ€๋ฉฐ x์— ๋Œ€ํ•ด ๋ณ‘ํ•ฉ, ์•„๋ž˜๋กœ ๋‚ด๋ ค๊ฐ€๋Š” ๊ธฐ์šธ๊ธฐ.
    • segment/ โ€” HEOI 2013 Segment. ์˜จ๋ผ์ธ์ด ๊ฐ•์ œ๋˜์–ด(์ขŒํ‘œ๊ฐ€ ์•ž์„  ๋‹ต์œผ๋กœ ์•”ํ˜ธํ™”๋˜์–ด ์˜จ๋‹ค) CDQ๋„ ์ขŒํ‘œ ์••์ถ•๋„ ๋ง‰ํžˆ๊ณ , ๋ฆฌ์ฐจ์˜ค ํŠธ๋ฆฌ๋งŒ ์ œ ์ง‘์ธ ์„ ๋ถ„ ์‚ฝ์ž… ๋ฌธ์ œ์— ํ™€๋กœ ์„ ๋‹ค.
  • guitar-tuner/ โ€” ๋งฅ์˜ ๋งˆ์ดํฌ๋ฅผ ์ฝ์–ด ์Œ๋†’์ด๋ฅผ ๋ฐ”๋Š˜ ๊ณ„๊ธฐ๋กœ ์‹ค์‹œ๊ฐ„์— ๋ณด์ด๋Š” ๊ธฐํƒ€ ํŠœ๋„ˆ. ์Œ๋†’์ด ๊ฒ€์ถœ์€ DSP ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์—†์ด YIN ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋งจ์†์œผ๋กœ ๊ตฌํ˜„ํ•œ ๊ฒƒ์ด๋‹ค. ์ฐจ์ด ํ•จ์ˆ˜, ๋ˆ„์  ํ‰๊ท  ์ •๊ทœํ™”, ์ ˆ๋Œ€ ๋ฌธํ„ฑ๊ฐ’, ํฌ๋ฌผ์„  ๋ณด๊ฐ„์„ ํ•˜๊ณ , ๊ทธ ๋‘˜๋ ˆ์— ๊ณ ์—ญ ํ†ต๊ณผ ์ „์ฒ˜๋ฆฌ์™€ ์–ดํƒ ๊ณผ๋„ ์–ต์ œ์™€ ์ค‘์•™๊ฐ’ ํ‰ํ™œํ™”์™€ ์˜ฅํƒ€๋ธŒ ์˜ค๋ฅ˜ ๋ณด์ •์„ ๋‘๋ฅธ๋‹ค. ์†Œ๋ฆฌ ์žก๊ธฐ๋Š” malgo(miniaudio)๋กœ ํ•œ๋‹ค. ์ž์„ธํ•œ ๊ฒƒ์€ ์ œ README์— ์žˆ๋‹ค. ์œ„์˜ ๋‘ ๋ชจ์Œ๊ณผ ๋‹ฌ๋ฆฌ ์ด๊ฒƒ์€ ํ”„๋กœ๊ทธ๋žจ ํ•˜๋‚˜๋ฅผ ๋ฌธ์„œ ์…‹์œผ๋กœ ์ž๋ฅธ ๊ฒƒ์ด๋‹ค.
    • pitch/ โ€” ๋งˆ์ดํฌ๋„ ํ™”๋ฉด๋„ ๋ชจ๋ฅด๋Š” ์ˆœ์ˆ˜ํ•œ ํ•ต์‹ฌ. ๊ณง pitch.Stream ๋’ค์˜ ๊ฒ€์ถœ ํŒŒ์ดํ”„๋ผ์ธ๊ณผ ๊ฐœ๋ฐฉํ˜„ ์Œ์•… ์ด๋ก ์ด๋‹ค.
    • tuner.w โ€” ์ฝ˜์†” ํ”„๋ŸฐํŠธ์—”๋“œ. ํ„ฐ๋ฏธ๋„์— ๊ทธ๋ฆฌ๋Š” ๋ฐ˜์Œ๊ณ„ ๊ณ„๊ธฐ๋‹ค.
    • gui/ โ€” Gio ๋„ค์ดํ‹ฐ๋ธŒ ์ฐฝ์œผ๋กœ ๋งŒ๋“  ๋‘˜์งธ ํ”„๋ŸฐํŠธ์—”๋“œ. ๊ฐ™์€ ํ•ต์‹ฌ์„ ํ•จ๊ป˜ ์“ด๋‹ค.
  • life-game/ โ€” ํ„ฐ๋ฏธ๋„์—์„œ ๋„๋Š” ์ฝ˜์›จ์ด์˜ ์ƒ๋ช… ๊ฒŒ์ž„. ๊ทธ๋ž˜ํ”ฝ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ „ํ˜€ ์“ฐ์ง€ ์•Š๋Š”๋‹ค. ์ฝ˜์›จ์ด์—๊ฒŒ ๋ฐ”๋‘‘ํŒ์œผ๋กœ ๋„‰๋„‰ํ–ˆ๋‹ค๋ฉด ์šฐ๋ฆฌ์—๊ฒŒ๋Š” ANSI ์ด์Šค์ผ€์ดํ”„ ๋ถ€ํ˜ธ๋กœ ๋„‰๋„‰ํ•˜๋‹ค. ์šฐ์ฃผ๋Š” ์›ํ™˜๋ฉด์ด๋ผ ํ•œ์ชฝ ๋์œผ๋กœ ๊ฑธ์–ด ๋‚˜๊ฐ„ ๊ธ€๋ผ์ด๋”๊ฐ€ ๋‹ค๋ฅธ ์ชฝ์—์„œ ๋Œ์•„์˜ค๊ณ , ๊ณ ์Šคํผ์˜ ๊ธ€๋ผ์ด๋” ์ด๋„ ๋๋‚ด ์ œ๊ฐ€ ์œ ์ค„๊ธฐ์— ๋งž์•„ ๋–จ์–ด์ง„๋‹ค. ํŒŒ์ผ .w ํ•˜๋‚˜๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์ด์ž ์—์„ธ์ด์ด๊ณ , ์ œ๋ชฉ์€ ๋…ธ์ž์˜ ์ฒœ์ง€๋ถˆ์ธ์—์„œ ์™”๋‹ค. ์ฐป์ƒ ์œ„์— ๋Œ์„ ๋†“์•„ ๊ฐ€๋ฉฐ ๊ทœ์น™์„ ๋‹ค๋“ฌ๋˜ ์ฝ˜์›จ์ด, ๊ธ€๋ผ์ด๋” ์ด์ด ๋งค๋“ญ์ง€์€ 50๋‹ฌ๋Ÿฌ ๋‚ด๊ธฐ, ๊ทธ๋ฆฌ๊ณ  ๋ง๋…„์˜ "๋‚˜๋Š” ์ƒ๋ช… ๊ฒŒ์ž„์ด ์‹ซ๋‹ค"๋Š” ๋ง์„ ๋‹ด์•˜๋‹ค. ๋””๋ ‰ํ„ฐ๋ฆฌ demos/์—๋Š” vhs๋กœ ์ฐ์€ ๊ธฐ๋ก์ด ์žˆ๋‹ค.
  • skew-ternary/ โ€” ํฌ๋ˆ„์Šค์˜ skew-ternary-calc์™€, ๋ˆ„๊ตฐ๊ฐ€ ๋งŒ๋“ค์–ด ์ฃผ๊ธฐ๋ฅผ ๊ทธ๊ฐ€ ๋ฐ”๋ž๋˜ ๋Œ€ํ™”ํ˜• ์žฅ๋‚œ๊ฐ. ์‚ผ์ง„ ๋‚˜๋ฌด์˜ ๋นˆ์ž๋ฆฌ๋งˆ๋‹ค ์‹น์ด ๋‹๊ณ , ๋งˆ๋””์™€ ์‹น ์ €๋งˆ๋‹ค ๋“ฑ๊ธ‰์ด ์žˆ๋‹ค(์™ผ์ชฝ ์ž์‹ โˆ’1, ๊ฐ€์šด๋ฐ๋Š” ๊ทธ๋Œ€๋กœ, ์˜ค๋ฅธ์ชฝ +1). ๋“ฑ๊ธ‰์ด ํ•œ ๋ฒˆ๋„ ์Œ์ˆ˜๊ฐ€ ๋˜์ง€ ์•Š์œผ๋ฉด ๊ทธ ๋‚˜๋ฌด๋Š” ๋น„์Šค๋“ฌํ•˜๋‹ค. ์–ด์—ฌ์œ ์ •๋ฆฌ๋Š” ๊ทธ๋Ÿฐ ๋‚˜๋ฌด 2n+2๊ฐœ๋กœ ๋œ ์ˆœํ™˜ ๊ฐ€์กฑ๋งˆ๋‹ค ๋น„์Šค๋“ฌํ•œ ๊ฒƒ์ด ์ •ํ™•ํžˆ ๋„ท์ด๋ผ๋Š” ๊ฒƒ์ธ๋ฐ, ๊ฐœ๋ฏธ๋ฅผ ๋‘˜๋ ˆ๋กœ ๊ธฐ์–ด๊ฐ€๊ฒŒ ํ•ด ์‹น์€ ์˜ฌ๋ฆฌ๊ณ  ํ˜ธ๋Š” ๋‚ด๋ฆฌ๋ฉฐ ์„ธ๋ฉด ์ฆ๋ช…๋œ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์€ ๋‚˜๋ฌด์˜ ์„ธ ์ผค๋ ˆ๋ฅผ ์…ˆํ•œ ๋’ค ๋Œ€์‘ํ•˜๋Š” ํ‰๋ฉด ์ง€๋„๋ฅผ ๋‘ ๊ฐ€์ง€๋กœ ์ง“๋Š”๋‹ค. ์ž์นด๋ฅด์™€ ์…ฐํŽ˜๋ฅด์˜ ๋Œ€์‘์œผ๋กœ ํ•œ ๋ฒˆ, ๋ธ๋ฃฝ๊ณ ์™€ ๋ธ๋ฆฌ์Šคํ† ๋กœ์™€ ํŽ˜๋…ธ์˜ ๋Œ€์‘์œผ๋กœ ํ•œ ๋ฒˆ์ธ๋ฐ, ๊ธฐ๋ฐ”์Šคโ€“์Šคํ†จํ”ผ ์ฟผ๋“œ์—์ง€ ๊ตฌ์กฐ ์œ„์—์„œ ํ•˜๋ฉฐ, ํฌ๋ˆ„์Šค ์ž์‹ ์˜ ๋†€๋ผ์›€์ด ์‚ฌ๋Š” ๊ณณ๋„ ๊ฑฐ๊ธฐ๋‹ค. ๋„ค ์ผค๋ ˆ๊ฐ€ ๋„ค ๊ฐœ์˜ ์Œ๋Œ€ ์ง€๋„๋ฅผ ์ค€๋‹ค๋Š” ์ถ”์ธก์ธ๋ฐ, ์งˆ ์…ฐํŽ˜๋ฅด๊ฐ€ ์ž๊ธฐ 1998๋…„ ํ•™์œ„ ๋…ผ๋ฌธ์—์„œ ์„ค๋ช…ํ•ด ์ฃผ์—ˆ๋‹ค. CWEB ์›๋ณธ๊ณผ ์”จ์•—๋งˆ๋‹ค 6333๊ฐ€์ง€์—์„œ ์ฐจ์ด ์—†์ด ๋งž์ถฐ ๋ณด์•˜๊ณ , ํฌ๋ˆ„์Šค์˜ MetaPost ๊ทธ๋ฆผ 68๊ฐœ๋„ ๋ชจ๋‘ ํ•จ๊ป˜ ์˜ฎ๊ฒผ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด์„œ mpost์˜ ํ•œ ๋ฒˆ ํ›‘๊ธฐ ๋ชจํ˜•(๊ทธ๋ฆผ์ด ์•ž์„  ๊ทธ๋ฆผ์˜ ์ƒํƒœ๋ฅผ ๋ฌผ๋ ค๋ฐ›๋Š”๋‹ค)์—์„œ luamplib์˜ ๊ทธ๋ฆผ๋ณ„ ๋ชจํ˜•์œผ๋กœ ๋ฐ”๊พธ์—ˆ๋‹ค.
    • app/ โ€” ํฌ๋ˆ„์Šค๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉฐ์—์„œ ์†์ˆ˜ ๋ฐํžŒ ๋ฐ”๋žŒ, ๊ณง ๋ˆ„๊ตฐ๊ฐ€ ์ด ๋‚˜๋ฌด๋“ค์„ ๋Œ€ํ™”ํ˜•์œผ๋กœ ๋‹ค๋ฃจ๊ณ  ๊ทธ ๋ฌด๋Šฌ๋ฅผ ์ƒ‰์œผ๋กœ ๋“œ๋Ÿฌ๋‚ด ์ฃผ๊ธฐ๋ฅผ ๋ฐ”๋ž€ ๊ฒƒ์— ๋‹ตํ•˜๋Š” HTML ํ•œ ์ชฝ. ๊ฐœ๋ฏธ๋ฅผ ๋‘˜๋ ˆ๋กœ ํ•œ ๊ฑธ์Œ์”ฉ ์˜ฎ๊ธฐ๋ฉฐ ์‹น์ด ์Œ“์ด๊ณ  ์ง์ง€์–ด ์‚ฌ๋ผ์ง€๋Š” ๊ฒƒ์„ ๋ณด๋‹ค๊ฐ€, ๋๋‚ด ์ง์„ ์ฐพ์ง€ ๋ชปํ•œ ๋„ท๋งŒ ๋‚จ์œผ๋ฉด ๊ทธ๊ฒƒ๋“ค์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ๋„ค ์ผค๋ ˆ๋ฅผ ๋Œ๋ ค ๋ณธ๋‹ค. ์…ˆ์€ .w ์ž์‹ ์˜ ํŒŒ์‹ฑ๊ณผ ์ƒํƒœํ‘œ ์žฅ์„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์˜ฎ๊ธด ๊ฒƒ์ด๊ณ , ๋ฌด์ž‘์œ„ ๋น„์Šค๋“ฌ ๋‚˜๋ฌด 3510๊ฐœ์—์„œ Go ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋งž์ถฐ ๋ณด์•˜๋‹ค.

About

GWEB Examples

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages