OEIS์ Evolution ์์ ์ค์์ด ์ํ์ค๋ฅผ ์ฐพ์ ์ง๋ง ๋ต์ผ๋ก ๊ฒ์ํ์ง ์์์ต๋๋ค. Mathematica์์ ์ฐธ์กฐ ๊ตฌํ์ ์์ฑํ ํ์๋ ์ด๊ฒ์ด ๋ณ๋์ ๋์ ์ผ๋ก ํ ์์๋ ์ฌ๋ฏธ์๋ ์ด๋์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
์์น ํต๋ถ์ด ์์๋ก๋ฅผ ๊ฑด์คํฉ์๋ค! ์์ ์ ์๋ฅผ ๊ณ ๋ คํ์ญ์์ค N
. ์๋ฅผ ๋ค์ด์ ์ดํด ๋ณด๊ฒ ์ต๋๋ค 24
. ์ด ์ซ์๋ฅผ ํต๋ถ์ด์ํค๊ธฐ ์ํด์๋ ํฉ์ด๋๋ ๊ฐ์ฅ ํฐ ์ฐ์ ์์ ๋ฅผ ์ฐพ์์ผํฉ๋๋ค N
. ์ด ๊ฒฝ์ฐ์๋์
๋๋ค 7 + 8 + 9 = 24
. ๊ทธ๋์ ์ฐ๋ฆฌ๋ 24
์ธ ๊ฐ์ ์๋ก์ด ์ซ์๋ก ๋ ve ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ์ฐ์ ๋ฐ์์ด์๋ ํต๋ถ์ด ์์๋ก๊ฐ ์๋๋๋ค. ๋ฐ๋ผ์ ์ด๋ฌํ ๊ตฌ์ฑ ์์์ ๋ํ ํ๋ก์ธ์ค๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ๋ฐ๋ณตํฉ์๋ค.
24
/|\
/ | \
/ | \
7 8 9
/ \ /|\
3 4 / | \
/ \ / | \
1 2 2 3 4
/ \
1 2
์ซ์๋ฅผ ๋ ์์ ์ฐ์ ์ ์๋ก ๋ถํด ํ ์ ์์ ๋๋ง๋ค ํ๋ก์ธ์ค๋ฅผ ์ค์งํฉ๋๋ค. ๋ํ ์ฐ๋ฆฌ๊ฐ ์ด ์ ์์ต๋๋ค 9
์ผ๋ก 4 + 5
ํ์ง๋ง, 2 + 3 + 4
์ด์์ ๊ตฌ์ฑ ์์๊ฐ ์์ต๋๋ค. ๋ถ์ด ํ์ ์ N
ํ์ฌ ํฌํจํ์ด ๊ณต์ ์์ ์ป์ด์ง ์ ์ ๊ฐ์๋ก ์ ์๋๋ค N
์์ฒด. ์์ ํธ๋ฆฌ์๋ 13 ๊ฐ์ ๋
ธ๋๊ฐ F(24) = 13
์์ต๋๋ค.
์ด ์์๋ OEIS ํญ๋ชฉ A256504 ์ ๋๋ค.
์์ ์์ํ๋ ์ฒ์ 40 ๊ฐ์ ์ฉ์ด N = 1
๋
1, 1, 3, 1, 5, 6, 5, 1, 6, 7, 12, 10, 12, 11, 12, 1, 8, 16, 14, 17, 18, 18,
23, 13, 21, 18, 22, 23, 24, 19, 14, 1, 22, 20, 23, 24, 31, 27, 25, 26
์ฒซ ๋ฒ์งธ 1000 ๊ฐ์ ์ฉ์ด๋ ์ด pastebin์์ ์ฐพ์ ์ ์์ต๋๋ค .
๋์
์์ ์ ์๊ฐ ์ฃผ์ด์ง๋ฉด N
ํต๋ถ์ด ์๋ฅผ ๊ฒฐ์ ํ์ญ์์ค F(N)
. (๋ฐ๋ผ์ 0
OEIS์ ๋์ ์๋ ์ฃผ์ ๋ด์ฉ์ ๋ค๋ฃฐ ํ์๋ ์์ต๋๋ค .)
STDIN (๋๋ ๊ฐ์ฅ ๊ฐ๊น์ด ๋์), ๋ช ๋ น ํ ์ธ์ ๋๋ ํจ์ ์ธ์๋ฅผ ํตํด ์ ๋ ฅ์ ๋ฐ๊ณ STDOUT (๋๋ ๊ฐ์ฅ ๊ฐ๊น์ด ๋์), ํจ์ ๋ฆฌํด ๊ฐ ๋๋ ํจ์ (out) ๋งค๊ฐ ๋ณ์๋ฅผ ํตํด ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ ๋๋ ํจ์๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
์ด๊ฒ์ ์ฝ๋ ๊ณจํ์ด๋ฏ๋ก ๊ฐ์ฅ ์งง์ ๋๋ต (๋ฐ์ดํธ)์ด ์ด๊น๋๋ค.
๋ณด๋์ค ์ง๋ฌธ : ์ด ์ํ์ค์ ํฅ๋ฏธ๋ก์ด ์์ฑ์ ์ฐพ์ ์ ์์ต๋๊น?
๋ต๋ณ
Pyth, 23 22 21 ๋ฐ์ดํธ
Lh&lJfqbsT.:tUb)syMeJ
์ด๊ฒ์ ์ฌ๊ท ํจ์๋ฅผ ์ ์ํฉ๋๋ค y
. ์จ๋ผ์ธ์ผ๋ก ์ฌ์ฉํด๋ณด์ญ์์ค : ๋ฐ๋ชจ
์ค๋ช :
L define a function y(b): return ...
tUb the list [1, 2, ..., b-1]
.: ) generate all consecutive sub-sequences
f filter for sub-sequences T, which satisfy:
qbsT b == sum(T)
J and store them in J
return
lJ len(J)
& and (if len(J) == 0 then 0 else ...)
eJ last element of J (=longest sub-sequence)
yM recursive calls for all these numbers
s sum
h incremented by one (counting the current node)
๋ต๋ณ
๋ถ์ด , 1328 989 887 797 ๋ฐ์ดํธ
์ด ๋ต๋ณ์ ๋ถ๋นํ๊ฒ ๊ธธ๋ค (์ฐ๋ฆฌ๊ฐ ์ ์ ์์๋ ์ง์ญ ์ด ์์์ผ๋ฉด ์ข๊ฒ ๋ค ) โฆ ์ด๊ฑธ ์ง๋์ ์คํฌ๋กคํ๊ณ ๋ค๋ฅธ ๋ต๋ณ์ ์ฌ๋์ ๋ณด์ฌ์ฃผ์ญ์์ค.
์ด ์ฝ๋๋ฅผ ๋ค๋ฃจ๋ ๊ฒ์ด์ด ๋์ ์ ์๊ฐ์์ฃผ์์ต๋๋ค. EOEIS์ Fission์ ๋ํ ๋ต๋ณ์ ์ถ๊ฐํ๊ณ ์ถ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ค์ ๋ก Fission์ ๋ฐฐ์ฐ๊ณ ์ด๋ฅผ ๊ตฌํํ๋ ๋ฐ ๋ช ์ฃผ๊ฐ ๊ฑธ๋ ธ์ต๋๋ค. ๊ทธ ์ฌ์ด์ ์ํ์ค๊ฐ โโ์ค์ ๋ก ์ปค์ ธ์ ๋ณ๋์ ์ฑ๋ฆฐ์ง๋ฅผ ๊ฒ์ํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. (๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ์ด์จ๋ EOEIS์ ํธ๋ฆฌ์์ ๊ทธ๋ฆฌ ๋ฉ์ง ์์์ต๋๋ค).
๋๋ ๋น์ ์๊ฒ ๊ดด๋ฌผ์ ์ ๋ฌผํฉ๋๋ค.
R'0@+\
/ Y@</ /[@ Y]_L
[? % \ / \ J
\$@ [Z/;[{+++++++++L
UR+++++++++>/;
9\ ; 7A9
SQS {+L /$ \/\/\/\/\/ 5/ @ [~ &@[S\/ \ D /8/
~4X /A@[ %5 /; & K } [S//~KSA /
3 \ A$@S S\/ \/\/\/ \/>\ /S]@A / \ { +X
W7 X X /> \ +\ A\ / \ /6~@/ \/
/ ~A\; +;\ /@
ZX [K / {/ / @ @ } \ X @
\AS </ \V / }SZS S/
X ;;@\ /;X /> \ ; X X
; \@+ >/ }$S SZS\+; //\V
/ \\ /\; X X @ @ \~K{
\0X / /~/V\V / 0W//
\ Z [K \ //\
W /MJ $$\\ /\7\A /;7/\/ /
4}K~@\ &] @\ 3/\
/ \{ }$A/1 2 }Y~K <\
[{/\ ;@\@ / \@<+@^ 1;}++@S68
@\ <\ 2 ; \ /
$ ;}++ +++++++L
%@A{/
M \@+>/
~ @
SNR'0YK
\ A!/
์
๋ ฅ์ ํํ ์ค ๋ฐ๊ฟ์ด ์์ ๊ฒ์ผ๋ก ์์ํ๋ฏ๋ก ๋ค์๊ณผ ๊ฐ์ด ํธ์ถ ํ ์ echo -n 120 | ./Fission oeis256504.fis
์์ต๋๋ค.
๋ ์ด์์์ ์ฌ์ ํ โโ๋ ํจ์จ์ ์ผ ์ ์์ผ๋ฏ๋ก ์ฌ๊ธฐ์๋ ์ฌ์ ํ ๊ฐ์ ์ ์ฌ์ง๊ฐ ๋ง์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค (์ : ์ฌ๊ธฐ์๋ 911 581 461 374 ๊ฐ์ ๊ณต๋ฐฑ ์ด ํฌํจ๋์ด ์์ ).
์ค๋ช
์ํ๊ธฐ ์ ์ ์ด๊ฒ์ ํ
์คํธ ํ ๋์ฃผ์ํด์ผํฉ๋๋ค. ๊ณต์ ํต์ญ์ฌ ๋ ์ ์ ์ผ๋ก ์๋ํ์ง ์์ต๋๋ค. a) Mirror.cpp
๋ง์ ์์คํ
์์ ์ปดํ์ผ๋์ง ์์ต๋๋ค. ํด๋น ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋ ํ์ ์ฃผ์ ์ฒ๋ฆฌํ์ญ์์ค. ์ํฅ์๋ฐ๋ ๊ตฌ์ฑ ์์ (์์ ๋ฏธ๋ฌ)๋์ด ์ฝ๋์์ ์ฌ์ฉ๋์ง ์์ต๋๋ค. b) ์ ์๋์ง ์์ ๋์์ผ๋ก ์ด์ด์ง ์์๋ ๋ช ๊ฐ์ง ๋ฒ๊ทธ๊ฐ ์์ต๋๋ค (์ด ๋ณต์กํ ํ๋ก๊ทธ๋จ์ ๊ฒฝ์ฐ). ์ด ํจ์น ๋ฅผ ์ ์ฉ ํ์ฌ ์์ ํ ์ ์์ต๋๋ค. ์ผ๋จ ๊ทธ๋ ๊ฒํ๋ฉด, ์ธํฐํ๋ฆฌํฐ๋ฅผ ์ปดํ์ผ ํ ์ ์์ด์ผํฉ๋๋ค.
g++ -g --std=c++11 *.cpp -o Fission
์ฌ๋ฏธ์๋ ์ฌ์ค :์ด ํ๋ก๊ทธ๋จ์ #
(๋๋ค ๋ฏธ๋ฌ), :
(ํํ ๋ฏธ๋ฌ) -
๋๋ |
(์ผ๋ฐ ๋ฏธ๋ฌ) ๋ฐ "
(์ธ์ ๋ชจ๋)๋ฅผ ์ ์ธํ๊ณ Fission์ด ์ ๊ณตํด์ผํ๋ ๊ฑฐ์ ๋ชจ๋ ๊ตฌ์ฑ ์์๋ฅผ ์ฌ์ฉ ํฉ๋๋ค.
์ง๊ตฌ์์์ ๋ฌด์?
๊ฒฝ๊ณ : ์ด ๊ณผ์ ์ ๊ฝค ๊ธธ์ด์ง ๊ฒ์ ๋๋ค โฆ ์ ๋ ์ฌ๋ฌ๋ถ์ด Fission์ ์๋ ๋ฐฉ์๊ณผ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ๋ฒ์ ์ง์ฌ์ผ๋ก ๊ด์ฌ์ด ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๋น์ ์ด ํ์คํ์ง ์๋ค๋ฉด, ๋๋ ์ด๊ฒ์ ์ด๋ป๊ฒ ์์ฝ ํ ์ ์๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. (๋ค์ ๋จ๋ฝ์์๋ ์ธ์ด์ ๋ํ ์ผ๋ฐ์ ์ธ ์ค๋ช ์ ์ ๊ณตํฉ๋๋ค.)
ํต๋ถ์ด์ 2 ์ฐจ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก, ๋ฐ์ดํฐ์ ์ ์ด ํ๋ฆ ๋ชจ๋ ๊ทธ๋ฆฌ๋๋ฅผ ํตํด ์์ง์ด๋ ์์๋ก ํ์๋ฉ๋๋ค . ์ด์ ์ Marbelous ๋ฅผ ๋ณด๊ฑฐ๋ ์ฌ์ฉํ ์ ์ด ์๋ค๋ฉด ๊ทธ ๊ฐ๋
์ ๋ชจํธํ๊ฒ ์ต์ํด์ผํฉ๋๋ค. ๊ฐ ์์์๋ ์์ด ์๋ ์ง๋๊ณผ ์์์ ์๋์ง๋ผ๋ ๋ ๊ฐ์ง ์ ์ ์์ฑ์ด ์์ต๋๋ค. ์ง๋์ด ์์๊ฐ๋๋ฉด ๊ทธ๋ฆฌ๋์์ ์์๊ฐ ์ ๊ฑฐ๋ฉ๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ง๋์ ์์์ โ๊ฐโ์ผ๋ก ๊ฐ์ฃผํ๊ณ ์๋์ง๋ฅผ ์์์ ํ๋ฆ์ ๊ฒฐ์ ํ๊ธฐ ์ํด ์ฌ๋ฌ ๊ตฌ์ฑ ์์์์ ์ฌ์ฉํ๋ ์ผ์ข
์ ๋ฉํ ์์ฑ์ผ๋ก ์ทจ๊ธ ํ ์ ์์ต๋๋ค (์ฆ, ๋๋ถ๋ถ์ ์ค์์น๋ ์๋์ง). (m,E)
ํ์ํ ๊ฒฝ์ฐ ์์๋ฅผ๋ก ํ์ ํฉ๋๋ค. ํ๋ก๊ทธ๋จ์ด ์์๋ ๋ ๊ทธ๋ฆฌ๋๋(1,0)
๋ค ๊ฐ์ง ๊ตฌ์ฑ ์์์ ์ด๋ ์์น์์๋ ์์ UDLR
(๋ฌธ์๋ ์์๊ฐ ์ฒ์์ ์์ง์ด๋ ๋ฐฉํฅ์ ๋ํ๋). ๊ทธ๋ฐ ๋ค์ ๋ณด๋ ์๋ ์์์ ์ง๋๊ณผ ์๋์ง๋ฅผ ๋ฐ๊พธ๊ฑฐ๋ ๋ฐฉํฅ์ ๋ฐ๊พธ๊ฑฐ๋ ๋ ์ ๊ตํ ์์
์ ์ํํ๋ ๊ตฌ์ฑ ์์๊ฐ ๋ชจ๋ ํฌํจ๋์ด ์์ต๋๋ค. ์ ์ฒด ๋ชฉ๋ก์ ๋ณด๋ ค๋ฉด esolangs ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ญ์์ค. ๊ทธ๋ฌ๋์ด ์ค๋ช
์์ ๋๋ถ๋ถ์ ์๊ฐํ๊ฒ ์ต๋๋ค. ํ๋ก๊ทธ๋จ์ด ์ฌ๋ฌ ๋ฒ ์ฌ์ฉํ๋ ๋ ๋ค๋ฅธ ์ค์ํ ์ ์ ๊ฒฉ์๊ฐ ํ์ ํ์ด๋ผ๋ ์ ์
๋๋ค. ์ด๋ค๋ฉด์ ๋ถ๋ช์น ์์๊ฐ ๋ฐ๋ ๋ฐฉํฅ์ผ๋ก ๋ค์ ๋ํ๋๊ณ ๊ฐ์ ๋ฐฉํฅ์ผ๋ก ์์ง์
๋๋ค.
ํ๋ก๊ทธ๋จ์ ์ฌ๋ฌ ๊ฐ์ ์์ ๋ถ๋ถ์ผ๋ก ์์ฑํ๊ณ ๋ง์ง๋ง์ ๋ชจ์์ ์ค๋ช ์ํ๊ฒ ์ต๋๋ค.
atoi
์ด ๊ตฌ์ฑ ์์๋ ๋ค์ ํฅ๋ฏธ๋กญ์ง ์์ ์ ์์ง๋ง ํ๋ฅญํ๊ณ ๊ฐ๋จํ๋ฉฐ Fission์ ์ฐ์ ๋ฐ ์ ์ด ํ๋ฆ์ ์ค์ํ ๊ฐ๋ ์ ๋ง์ด ์๊ฐ ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์์ด ๋ถ๋ถ์ ์์ฃผ ์ธ๋ฐํ๊ฒ ๋ค๋ฃฐ ๊ฒ์ด๋ฏ๋ก ๋ค๋ฅธ ๋ถ๋ถ์ ์ค์ฌ ์๋ก์ด ํต๋ถ์ด ์ญํ์ ๋์ ํ๊ณ ์ธ๋ถ์ ์ธ ์ ์ด ํ๋ฆ์ ์ํ ํ ์์๋ ๊ณ ๊ธ ๊ตฌ์ฑ ์์๋ฅผ ์ฐพ์ ๋ผ ์ ์์ต๋๋ค.
๋ถ์ด์ ์ ์๊ฐ ์๋ ๊ฐ๋ณ ๋ฌธ์์ ๋ฐ์ดํธ ๊ฐ๋ง ์ฝ์ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ด ์ฌ๊ธฐ ์์ ์ฉ๋ฉ ํ ์์๋ ์ฐ์ต์ด์ง๋ง , ๋ด๊ฐ์๋ ๋์ ๋๋ ๊ทธ๊ฒ์ ์ฌ๋ฐ๋ฅด๊ฒํ๊ณ STDIN์ ์ค์ ์ ์๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ ํ ์ ์๋ค๊ณ ์๊ฐํ์ต๋๋ค. atoi
์ฝ๋ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค .
;
R'0@+\
/ Y@</ /[@ Y]_L
[? % \ / \ J
\$@ [Z/;[{+++++++++L
UR+++++++++>/;
O
ํต๋ถ์ด์์ ๊ฐ์ฅ ์ค์ํ ๋ ์ฑ๋ถ์ ํต๋ถ์ด ๋ฐ ํต์ตํฉ๋ก์
๋๋ค. ํต๋ถ์ด ์์๋ก ์์์ด๋ค V^<>
(์์ ์ฝ๋๋ฅผ ์ฌ์ฉ <
ํ๊ณ >
). ํต๋ถ์ด ์์๋ ์์๋ฅผ (์บ๋ฆญํฐ์ ์จ์ง๋ก ๋ณด๋ด์) ๊ธฐ๋ณธ๊ฐ์ผ๋ก์ ์ ์ฅํ ์ ์์ต๋๋ค (2,0)
. ์์๊ฐ ์บ๋ฆญํฐ์ ์ ์ ์ ๋ฟ์ผ๋ฉด ๋ ๊ฐ์ ์๋ก์ด ์์๊ฐ ์ธก๋ฉด์ผ๋ก ๋ณด๋ด์ง๋๋ค. ๊ทธ๋ค์ ์ง๋์ ๋ค์ด์ค๋ ์ง๋์ ์ ์ฅ๋ ์ง๋์ผ๋ก ๋๋ ์ ๊ฒฐ์ ํฉ๋๋ค (์ฆ, ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐ์ผ๋ก ์ค์). ์ผ์ชฝ์ผ๋ก๊ฐ๋ ์์๋์ด ๊ฐ์ ์ป๊ณ , ์ค๋ฅธ์ชฝ์ผ๋ก๊ฐ๋ ์์๋ ์ง๋์ ๋๋จธ์ง๋ฅผ ์ป์ต๋๋ค (์ฆ, ์ง๋์ ๋ถ์ด์ ๋ณด์กด ๋จ) . ๋๊ฐ๋ ์์ ๋ ๋ค ๋ค์ด์ค๋ ์๋์ง ๋นผ๊ธฐ์ ์ฅ๋ ์๋์ง. ์ด๊ฒ์ ์ฐ๋ฆฌ๊ฐ ์ฐ์ ์ ํต๋ถ์ด ์์๋ก๋ฅผ ์ฌ์ฉํ ์ ์์์ ์๋ฏธํฉ๋๋ค. ํต๋ถ์ด๋ก๊ฐ ํ์ฅ์์ ๋ฟ์ผ๋ฉด ์์๋ ๋จ์ํ ๋๊ฐ์ ์ผ๋ก ๋ฐ์ฌ๋์ด ์บ๋ฆญํฐ์ ์ ์ ๋ฐฉํฅ์ผ๋ก ์์ง์
๋๋ค.
ํต์ตํฉ์ ์์์ด๋ค YA{}
(์์ ์ฝ๋๋ฅผ ์ฌ์ฉ Y
ํ๊ณ {
). ๊ทธ๋ค์ ๊ธฐ๋ฅ์ ๋น์ทํฉ๋๋ค : ๊ทธ๋ค์ ์์๋ฅผ ์ ์ฅํ ์ ์์ผ๋ฉฐ (๊ธฐ๋ณธ๊ฐ (1,0)
) ์ ์ ์์ ์ถฉ๋ํ๋ฉด ๋ ๊ฐ์ ์๋ก์ด ์์๊ฐ ์ธก๋ฉด์ผ๋ก ๋ณด๋ด์ง๋๋ค. ๊ทธ๋ฌ๋์ด ๊ฒฝ์ฐ ๋ ์์๋ ๋์ผํ๋ฉฐ ํญ์ ๋ค์ด์ค๋ ์๋์ง๋ฅผ ์ ์งํ๊ณ ๋ค์ด์ค๋ ์ง๋์ ์ ์ฅ๋ ์ง๋์ ๊ณฑํฉ๋๋ค. ์ฆ, ๊ธฐ๋ณธ์ ์ผ๋ก ํต์ตํฉ ๋ฐ์๊ธฐ๋ ์ ์ ์ ๋ฟ์ ์์๋ฅผ ๋ณต์ ํฉ๋๋ค. ์ธก๋ฉด์์ ๊ณต๊ฒฉ ํ ๋, ์ตํฉ ์์๋ก๋ ์ข ๋ ๋ณต์ก : ์์๋ ๋ํ์์๊ฐ ๋ฐ๋ํธ์ ๋ฟ์ ๋๊น์ง (๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ์ ๋
๋ฆฝ์ ์ผ๋ก) ์ ์ฅ๋ฉ๋๋ค. ๊ทธ๊ฒ์ด ์ผ์ด๋ ๋, ์๋ก์ด ์์๋ ์ง๋๊ณผ ์๋์ง๊ฐ ๋ ๊ฐ์ ์ค๋๋ ์์์ ํฉ์ธ ์ ์ ๋ฐฉํฅ์ผ๋ก ๋ฐฉ์ถ๋ฉ๋๋ค. ์ผ์นํ๋ ์์๊ฐ ๋ฐ๋ํธ์ ๋๋ฌํ๊ธฐ ์ ์ ์ ์์๊ฐ ๊ฐ์๋ฉด์ ๋ฟ์ผ๋ฉด ๊ธฐ์กด ์์๋ฅผ ๋ฎ์ด ์๋๋ค. ์ตํฉ ๋ฐ์๊ธฐ๋ ๋ง์
๋ฐ ๊ณฑ์
์ ๊ตฌํํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
๋ด๊ฐ ๋น์ผ ํ ๋ ๋ค๋ฅธ ๊ฐ๋จํ ๊ตฌ์ฑ ์์์
๋๋ค [
๊ทธ๋ฆฌ๊ณ ]
์ด๋ ๋จ์ํ ์ค๋ฅธ์ชฝ์์๋ ์์์ ๋ฐฉํฅ์ ์ค์ ํ๊ณ (๊ด๊ณ์์ด ๋ค์ด์ค๋ ๋ฐฉํฅ์) ๊ฐ๊ฐ ๋ ๋ฌ๋ค. ์์ง ๋ฑ๊ฐ๋ฌผ์ M
(์๋์ชฝ) ๋ฐ W
(์์ชฝ)์ด์ง๋ง atoi
์ฝ๋ ์๋ ์ฌ์ฉ๋์ง ์์ต๋๋ค . ์ด๊ธฐ ์์๋ฅผ ๋ฐฉ์ถ ํ ํ์๋ UDLR
์์ฉ WM][
ํฉ๋๋ค.
์ด์จ๋ ์ฝ๋๋ฅผ ์ดํด ๋ณด์. ์ด ํ๋ก๊ทธ๋จ์ 5 ๊ฐ์ ์์๋ก ์์ํฉ๋๋ค.
R
๊ณผL
ํ๋จ์ ๊ฐ๋จํ๊ฒ (๊ณผ์ ๋๋ ์ฆ๊ฐ ์ป์+
)์ด ๋(10,0)
๋ค์ ๊ฐ๊ฐ ํต๋ถ์ด๊ณผ ํต์ตํฉ์ ์ ์ฅ๋ฉ๋๋ค. ์ด ๋ฆฌ์กํฐ๋ฅผ ์ฌ์ฉํ์ฌ base-10 ์ ๋ ฅ์ ๊ตฌ๋ฌธ ๋ถ์ํฉ๋๋ค.L
์ค๋ฅธ์ชฝ ์๋จ์ ์ง๋ (๋์ฐฉ์ผ๋ก ๊ฐ์_
๋๊ธฐ)(0,0)
๋ฐ ํต์ตํฉ ์ธก์ ์ ์ฅ๋๋คY
. ์ด๊ฒ์ ์ฐ๋ฆฌ๊ฐ ์ฝ๊ณ ์๋ ์ซ์๋ฅผ ์ถ์ ํ๋ ๊ฒ์ ๋๋ค. ์ซ์๋ฅผ ์ฝ์ ๋ ์ ์ฐจ์ ์ผ๋ก ์ฆ๊ฐํ๊ณ ๊ณฑํ ๊ฒ์ ๋๋ค.R
์ผ์ชฝ ์๋จ ๋ชจ์๋ฆฌ์์๋ ๊ทธ๊ฒ์ ์ง๋์ ๋ฌธ์ ์ฝ๋๋ก ์ค์ ๋ฉ๋๋ค0
(48)์'0
๋ค์ ์ง๋๊ณผ ์๋์ง๋ก ๋ฐ๋ ์๋์ง,@
๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ผ๋ก ๋๋ ํ ๋ฒ์ ์ฆ๊ฐ+
์ค(1,48)
. ๊ทธ ๋ค์ ๋๊ฐ์ ๊ฑฐ์ธ ๋ฆฌ๋๋ ์ \
๋ฐ/
ํต๋ถ์ด ์์๋ก์ ์ ์ฅํ๋ค. ์ฐ๋ฆฌ๋์ ์ฌ์ฉํฉ๋๋ค48
์ซ์์ ์ค์ ๊ฐ์ ASCII ์ ๋ ฅ์ ์ค์ ํ๋ ๊ณต์ . ๋ํ1
๋ก ๋๋์ง ์๊ธฐ ์ํด ์ง๋์ ๋๋ ค์ผ ํ์ต๋๋ค0
.- ๋ง์ง๋ง์ผ๋ก,
U
์ผ์ชฝ ํ๋จ ๋ชจ์๋ฆฌ๋ ์ค์ ๋ก ๋ชจ๋ ๋์์ ์ค์ ํ๊ณ ์ฒ์์๋ ์ ์ด ํ๋ฆ์๋ง ์ฌ์ฉ๋ฉ๋๋ค.
์ค๋ฅธ์ชฝ์ผ๋ก ๋ฐฉํฅ์ ๋ฐ๊พผ ํ, ์ ์ด ์์๊ฐ ์ถฉ๋ ?
ํฉ๋๋ค. ์ด๊ฒ์ ์
๋ ฅ ๊ตฌ์ฑ ์์์
๋๋ค. ๋ฌธ์๋ฅผ ์ฝ๊ณ ์์์ ์ง๋์ ์ฝ์ ASCII ๊ฐ์ผ๋ก ์ค์ ํ๊ณ ์๋์ง๋ฅผ๋ก ์ค์ 0
ํฉ๋๋ค. ๋์ EOF๋ฅผ ๋๋ฅด๋ฉด ์๋์ง๊ฐ๋ก ์ค์ ๋ฉ๋๋ค 1
.
์์๋ ๊ณ์๋๊ณ ๋๋ฆฐ๋ค %
. ์ด๊ฒ์ ๋ฏธ๋ฌ ์ค์์น์
๋๋ค. ๋น ์์ฑ ์๋์ง์ ๊ฒฝ์ฐ /
๊ฑฐ์ธ ์ฒ๋ผ ์๋ํฉ๋๋ค . ๊ทธ๋ฌ๋ ๊ธ์ ์ ์ธ ์๋์ง์ ๊ฒฝ์ฐ ์๋์ง์ฒ๋ผ ์์ฉ \
ํ๋ฉฐ ์๋์ง๋ฅผ 1๋งํผ ๊ฐ์์ํต๋๋ค. ๋ฌธ์๋ฅผ ์ฝ๋ ๋์ ์์๋ ์์ชฝ์ผ๋ก ๋ฐ์ฌ๋์ด ๋ฌธ์๋ฅผ ์ฒ๋ฆฌ ํ ์ โโ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์
๋ ฅ์ ๋ง์น๋ฉด ์์๊ฐ ์๋์ชฝ์ผ๋ก ๋ฐ์ฌ๋๊ณ ๋ค๋ฅธ ๋
ผ๋ฆฌ๋ฅผ ์ ์ฉํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ์ ํ ์ ์์ต๋๋ค. ์ฐธ๊ณ ๋ก, ๋ฐ๋ ์ฑ๋ถ์ &
์
๋๋ค.
์ฐ๋ฆฌ๋ ์ง๊ธ ์์๊ฐ ์์ง์ด๊ณ ์์ต๋๋ค. ๊ฐ ๋ฌธ์์ ๋ํด ์ํ๋ ๊ฒ์ ์ซ์ ๊ฐ์ ์ฝ๊ณ ์ด๋ฅผ ๋์ ํฉ๊ณ์ ๋ํ ๋ค์ ๊ทธ ํฉ๊ณ์ 10์ ๊ณฑํ์ฌ ๋ค์ ์ซ์๋ฅผ ์ค๋นํ๋ ๊ฒ์ ๋๋ค.
์บ๋ฆญํฐ ์์๋ ๋จผ์ (๊ธฐ๋ณธ) ํจ์ ๋ฆฌ์กํฐ์ ์ถฉ๋ํฉ๋๋ค Y
. ์ด๋ ๊ฒํ๋ฉด ์์๊ฐ ๋ถํ ๋๊ณ ์ผ์ชฝ์ผ๋ก ์ด๋ํ๋ ์ฌ๋ณธ์ ์ ์ด ์์๋ก ์ฌ์ฉํ์ฌ ์
๋ ฅ ๊ตฌ์ฑ ์์๋ก ๋๋์๊ฐ ๋ค์ ๋ฌธ์๋ฅผ ์ฝ์ต๋๋ค. ์ฌ๋ฐ๋ฅธ ์ฌ๋ณธ์ด ์ฒ๋ฆฌ๋ฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ๋ฌธ์๋ฅผ ์ฝ์ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํ์ญ์์ค 3
. ์ฐ๋ฆฌ์ ์์ ๋ ๊ฒ์
๋๋ค (51,0)
. ์ง๋๊ณผ ์๋์ง๋ฅผ์ ๊ตํ @
ํ์ฌ ๋ค์ ํต๋ถ์ด ์์๋ก์ ๋นผ๊ธฐ๋ฅผ ์ด์ฉํ ์ ์์ต๋๋ค. ์์๋ก 48
๋ ์๋์ง๋ฅผ ๋นผ๊ณ (์ง๋์ ๋ฐ๊พธ์ง ์๊ณ ) ๋ ๊ฐ์ ์ฌ๋ณธ์ ๋ณด๋
๋๋ค (0,3)
. ์๋์ง๋ ์ด์ ์ฝ์ ์ซ์์ ํด๋นํฉ๋๋ค. ๋ค๊ฐ์ค๋ ์ฌ๋ณธ์ ๋จ์ํ ;
๋ชจ๋ ๋ค์ด์ค๋ ์์๋ฅผ ํ๊ดดํ๋ ๊ตฌ์ฑ ์์๋ก ๋ฒ๋ ค์ง๋๋ค . ์ฐ๋ฆฌ๋ ๊ณ์ํด์ ๋ค์ด ์ฌ๋ณธ์ผ๋ก ์์
ํ ๊ฒ์
๋๋ค. ๋น์ ์ ํตํด ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ์ผํฉ๋๋ค/
๊ทธ๋ฆฌ๊ณ \
์ฝ๊ฐ์ ๊ฑฐ์ธ.
@
์ง์ ํต์ตํฉ๋ก๋ ์ฐ๋ฆฌ๊ฐ ์ถ๊ฐ ํ ๊ฒ ๊ฐ์ ๊ฒ์ ๋ค์ ์ง๋๊ณผ ์๋์ง๋ฅผ ๊ตํํฉ๋๋ค (3,0)
์ฐ๋ฆฌ์ ๋์ ํฉ๊ณ๋ก Y
. ๋ฐ๋ผ์ ๋์ ํฉ๊ณ ์์ฒด์๋ ํญ์ 0
์๋์ง๊ฐ ์์ต๋๋ค.
์ด์ J
์ ํ์
๋๋ค. ๊ทธ๊ฒ์ดํ๋ ์ผ์ ์๋์ง๋ก ๋ค์ด์ค๋ ์์๋ฅผ ์์ผ๋ก ๋ฐ์ด ๋๋ ๊ฒ์
๋๋ค. ์ธ ๊ฒฝ์ฐ 0
์์๋ ๊ณ์ ์ง์งํฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด 1
ํ๋์ ์
์ 2
๊ฑด๋ ๋ฐ๊ณ ๋ ๊ฐ์ ์
์ ๊ฑด๋ ๋ธ ์ ์์ต๋๋ค. ์๋์ง๋ ์ ํ์ ์๋น๋๋ฏ๋ก ์์๋ ํญ์ ์๋์ง๋ก ๋๋ฉ๋๋ค 0
. ๋์ ํฉ๊ณ์ ์๋์ง๊ฐ 0์ด๋ฏ๋ก ํ์ฌ ์ ํ๋ ๋ฌด์๋๊ณ ์์๋ ํต์ตํฉ ๋ฐ์๊ธฐ๋ก ์ฌ ์ง์ ๋๋ฉฐ,์ด ์์์ {
์ง๋์ ๊ณฑํฉ๋๋ค 10
. ๋ค์ด ๊ณ ์ ์นดํผ๋ ํ๊ธฐ ;
๋๊ณ , ์
๊ณ ์ ์นดํผ๋ Y
์๋ก์ด ๋์ ํฉ๊ณ๋ก์ ๋ฐ์๊ธฐ๋ก ๋ค์ ๊ณต๊ธ๋๋ค .
์์ ๋ด์ฉ์ EOF์ ๋๋ฌ ํ ๋๊น์ง ๊ณ์ ๋ฐ๋ณต๋ฉ๋๋ค (์ด์ ์ซ์๊ฐ ์ฒ๋ฆฌ๋๊ธฐ ์ ์ ์๋ก์ด ์ซ์๊ฐ ์ฒ๋ฆฌ๋๋ ์ฌ๋ฏธ์๋ ํ์ดํ ๋ผ์ธ ๋ฐฉ์์ผ๋ก). ์ด์ ๋ %
์์๋ฅผ ์๋์ชฝ์ผ๋ก ๋ณด๋
๋๋ค. ์์ด๋์ด๋ (0,1)
์ด ์์๋ก์ ๋๋ฌํ๊ธฐ ์ ์์ด ์์๋ฅผ ์ง๊ธ ์ผ๋ก ๋ฐ๊พธ์ด a) ์ด๊ณ๊ฐ ์ํฅ์๋ฐ์ง ์๊ณ (์ ๋ก ์ง๋) b) ์ฐ๋ฆฌ๋ 1
์ ๋ฐ์ด ๋์ ์๋์ง๋ฅผ ์ป๋ ๊ฒ์ด๋ค [
. ๋ก ์๋์ง๋ฅผ ์ฝ๊ฒ ๊ด๋ฆฌ ํ ์์์ด ์๋์ง๊ฐ $
์ฆ๊ฐํฉ๋๋ค.
๋ฌธ์ ๋ ?
EOF๋ฅผ ์น ๋ ์ง๋์ ์ฌ์ค์ ํ์ง ์๊ธฐ ๋๋ฌธ์ ์ง๋์ ์ฌ์ ํ โโ๋ง์ง๋ง ๋ฌธ์ ์ฝ๊ธฐ์ ์ง๋์ด๋๊ณ ์๋์ง๋ 0
( ๋ค๋ก %
๊ฐ์ ํ๊ธฐ ๋๋ฌธ์ )์
๋๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๋ ๊ทธ ์ง๋์ ์ ๊ฑฐํ๊ณ ์ถ์ต๋๋ค. ์ด๋ฅผ ์ํด ์ฐ๋ฆฌ๋ ์ง๋๊ณผ ์๋์ง๋ฅผ ๋ค์ ๊ตํ ํฉ๋๋ค.1
0
@
์ด ์น์
์ ๋ง์น๊ธฐ ์ ์ ํ๋ ์ด์์ ๊ตฌ์ฑ ์์๋ฅผ ์๊ฐํด์ผํฉ๋๋ค Z
. ์ด๊ฒ์ ๋ณธ์ง์ ์ผ๋ก ๋์ผํ๋ค %
๋ &
. ์ฐจ์ด์ ์ ์์ ์๋์ง ์์๊ฐ ์๋์ง๋ฅผ ๊ฐ์์ํค๋ฉด์ ์ง์ ์ผ๋ก ํต๊ณผํ๊ฒํ๊ณ ๋น ์์ฑ ์๋์ง์ ์์๋ ์ผ์ชฝ์ผ๋ก 90๋ ํธํฅ ์ํจ๋ค๋ ๊ฒ์
๋๋ค. ์ด๊ฒ์ ์ฌ์ฉํ์ฌ ์์์ ์๋์ง๋ฅผ ๋ฐ๋ณตํด์ ๋ฐ๋ณตํจ์ผ๋ก์จ ์์์ ์๋์ง๋ฅผ ์ ๊ฑฐ ํ ์ ์์ต๋๋ค Z
. ์๋์ง๊ฐ ์ฌ๋ผ์ง๋ฉด ์์๋ ํธํฅ๋์ด ๋ฃจํ๋ฅผ ๋ ๋ฉ๋๋ค. ์ด๊ฒ์ด์ด ํจํด์
๋๋ค :
/ \
[Z/
์๋์ง๊ฐ 0์ด๋๋ฉด ์์๊ฐ ์๋ก ์ด๋ํฉ๋๋ค. ์ด ํจํด์ ํ๋ก๊ทธ๋จ์ ๋ค๋ฅธ ๋ถ๋ถ์์ ํ ํํ๋ก ์ฌ๋ฌ ๋ฒ ์ฌ์ฉํฉ๋๋ค.
์์๋์ด ์์ ๋ฃจํ๋ฅผ ๋จ๊ธด๋ค ๊ทธ๋์ ๋, ๊ทธ๊ฒ์ ๊ฒ์
๋๋ค (1,0)
๋ฐ๋ก ์ค์ (0,1)
๋ฐ์ด @
์
๋ ฅ์ ์ต์ข
๊ฒฐ๊ณผ๋ฅผ ๋ฐํ ํ ์ตํฉ ๋ฐ์๊ธฐ๋ฅผ ํ๊ฒฉํ๊ธฐ ์ ์. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ์ด๋ฏธ ๋ค๋ฅธ ์ซ์์ ๋ํด ๊ณฑํ๊ธฐ ๋๋ฌธ์ ๋์ ํฉ๊ณ๋ 10 ๋ฐฐ๊ฐ๋ฉ๋๋ค.
์ด์ ์๋์ง 1
๋ก์ด ์์๋๋ฅผ ๊ฑด๋ ๋ฐ๊ณ [
๋ก ๋ฐ์ด๋ค ๊ฒ /
์
๋๋ค. ์ด๊ฒ์ ์ฐ๋ฆฌ๊ฐ ํต๋ถ์ด ๋ฐ์๊ธฐ๋ก ํธํฅ ์์ผ์ ์ฐ๋ฆฌ๊ฐ 10์ผ๋ก ๋๋๊ณ ์ธ์ ๊ณฑ์
์ ๊ณ ์น๊ธฐ ์ํด ์ค๋นํ์ต๋๋ค. ๋ค์, ์ฐ๋ฆฌ๋ ์ ๋ฐ์ ๋ฒ๋ฆฌ๊ณ ๋ค๋ฅธ ํ๋ ;
๋ฅผ ์ถ๋ ฅ์ผ๋ก ์ ์งํฉ๋๋ค (์ฌ๊ธฐ์ ํํ O
ํ๋ฉด ํด๋น ๋ฌธ์๋ฅผ ๋จ์ํ ์ธ์ํ๊ณ ์์๋ฅผ ํ๊ดดํฉ๋๋ค-์ ์ฒด ํ๋ก๊ทธ๋จ์์ ์์๋ฅผ ๋์ ์ฌ์ฉํฉ๋๋ค).
itoa
/ \
input -> [{/\ ;@
@\ <\
$ ;}++ +++++++L
%@A{/
M \@+>/
~ @
SNR'0YK
\ A!/
๋ฌผ๋ก ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ๋ฌธ์์ด๋ก ๋ณํํ์ฌ ์ธ์ํด์ผํฉ๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก์ด ๋ถ๋ถ์ ๋๋ค. ์ด๊ฒ์ ์ ๋ ฅ์ด ํฑ 10 ์ ๋ ์ ์ ๋์ฐฉํ์ง ์์ง๋ง ์ฝ๊ฒ ์ ๊ณต๋๋ ์ ์ฒด ํ๋ก๊ทธ๋จ์ผ๋ก ๋์ฐฉํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ์ด ๋นํธ๋ ์ ์ฒด ํ๋ก๊ทธ๋จ์ ํ๋จ์์ ์ฐพ์ ์ ์์ต๋๋ค.
์ด ์ฝ๋๋ ์๋ก์ด ๋งค์ฐ ๊ฐ๋ ฅํ ํต๋ถ์ด ์ฑ๋ถ ์ธ stack์ ์๊ฐ K
ํฉ๋๋ค. ์คํ์ ์ฒ์์ ๋น์ด ์์ต๋๋ค. ์์ด ์๋ ์๋์ง๋ฅผ ๊ฐ์ง ์์๊ฐ ์คํ์ ๋ฟ์ผ๋ฉด ์์๋ ๋จ์ํ ์คํ์ผ๋ก ๋ฐ๋ฆฝ๋๋ค. ์์ ์๋์ง๋ฅผ ๊ฐ์ง ์์๊ฐ ์คํ์ ๋๋ฌํ๋ฉด ์ง๋๊ณผ ์๋์ง๋ ์คํ์ ์๋จ์์๋ ์์๋ก ๋์ฒด๋ฉ๋๋ค (๋ฐ๋ผ์ ํฐ์ง). ๊ทธ๋๋ ์คํ์ด ๋น์ด ์์ผ๋ฉด ์์์ ๋ฐฉํฅ์ด ๋ฐ๋๊ณ ์๋์ง๊ฐ ์์ด๋ฉ๋๋ค (์ฆ, ๊ณฑํ๊ธฐ -1
).
์, ์ค์ ์ฝ๋๋ก ๋์๊ฐ๋๋ค. itoa
์ค ๋ํซ ์ ์์ด๋์ด๋ ๋ค์ ๋ฐ๋ณต์ ์ํด ์
๋ ฅ์ 10์ผ๋ก ์ ์๋ก ๋๋๋ฉด์ ๋ค์ ์๋ฆฌ๋ฅผ ์ฐพ๊ธฐ ์ํด ์
๋ ฅ ๋ชจ๋๋ก 10์ ๋ฐ๋ณต์ ์ผ๋ก ์ทจํ๋ ๊ฒ์
๋๋ค. ์ด๋ ๊ฒํ๋ฉด ๋ชจ๋ ์๋ฆฟ์๊ฐ ์ญ์์ผ๋ก ํ์๋ฉ๋๋ค (์ตํ์์์ ์ต์์๊น์ง). ์์๋ฅผ ์์ ํ๊ธฐ ์ํด ๋ชจ๋ ์ซ์๋ฅผ ์คํ์ ๋ฃ๊ณ ๋๊น์ง ํ๋์ฉ ์ธ์ํ์ฌ ์ธ์ํฉ๋๋ค.
์ฝ๋์ ์๋จ ์ ๋ฐ์ ์ซ์ ๊ณ์ฐ์ ์ํํฉ๋๋ค. L
๋ํ๊ธฐ (+)๋ฅผ ์ฌ์ฉํ๋ฉด ๋ณต์ ํ๊ณ ํต๋ถ์ด๊ณผ ํต์ตํฉ๋ก๋ก ๊ณต๊ธํ๋ 10์ ์ ๊ณตํ๋ฏ๋ก 10์ ๋๋๊ณ ๊ณฑํ ์ ์์ต๋๋ค. ๋ฃจํ๋ ๊ธฐ๋ณธ์ ์ผ๋ก [
์ผ์ชฝ ์๋จ์์ ์์ํฉ๋๋ค . . ํ์ฌ ๊ฐ์ ๋ถํ ๋ฉ๋๋ค. ํ ์ฌ๋ณธ์ 10์ ๋๋ ๋ค์ 10์ ๊ณฑํ ํ ํต๋ถ์ด ๋ฐ์๊ธฐ์ ์ ์ฅ ํ ๋ค์ ์ ์ ์์ ๋ค๋ฅธ ์ฌ๋ณธ์ ๋ถ๋ช์นฉ๋๋ค. ์ด๊ฒ์๋ก ๊ณ์ฐ i % 10
๋ฉ๋๋ค i - ((i/10) * 10)
. ๋ํ A
๋๋๊ธฐ ํ์ ๊ณฑํ๊ธฐ ์ ์ ์ค๊ฐ ๊ฒฐ๊ณผ๋ฅผ ๋๋ i / 10
๋ฏ๋ก ๋ค์ ๋ฐ๋ณต์ ํผ๋ ํ ์ ์์ต๋๋ค .
๋ %
์ด ๋ค์๊ฐ DO-while ๋ฃจํ์ด๊ธฐ ๋๋ฌธ์ ๋ฐ๋ณต ๋ณ์๊ฐ 0์ ๋๋ฌํ๋ฉด,์ด ์ฝ๋๋ ์ธ์ ์์
๊ฒ์ด๋ค ๋ฃจํ๋ฅผ ์ค๋จ 0
(์ ๋ ์ ๋ก๋ฅผ ๋ณ๋๋ก ๋ง๋ค์ง ์๊ณ ). ๋ฃจํ๋ฅผ ๋ ๋๋ฉด ์คํ์ ๋น์ฐ๊ณ ์ซ์๋ฅผ ์ธ์ํ๋ ค๊ณ ํฉ๋๋ค. S
์ ๋ฐ๋์ด๋ฏ๋ก Z
, ์์ ๋น ์๋์ง๋ก ๋ค์ด์ค๋ ์์๋ฅผ ์ค๋ฅธ์ชฝ์ผ๋ก 90๋ ๋๋ฆฌ๋ ์ค์์น์
๋๋ค. ๋ฐ๋ผ์ ์์๋ ์ค์ ๋ก ๋ชจ์๋ฆฌ์์ S
์ง์ ์ผ๋ก ์ด๋ K
ํ์ฌ ์ซ์๊ฐ ํ์ด ๋์ค๊ฒํฉ๋๋ค ( ~
์ด๋ฅผ ํตํด ๋ค์ด์ค๋ ์์์ ์๋์ง๊ฐ ์์์ ํ์ธํ์ญ์์ค -1
). ํด๋น ์ซ์๋ 48
ํด๋น ์ซ์์ ASCII ์ฝ๋๋ฅผ ์ป๊ธฐ ์ํด ์ฆ๊ฐ ํฉ๋๋ค. A
๋ถํ ์ด ์ซ์๋ ํ๋ ๊ฐ์ ์ฌ๋ณธ์ ์ธ์ํ๊ธฐ!
๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ์ฌ๋ณธ์ Y
๋ค์ ์๋ฆฌ ์ ๋ฐ์๊ธฐ ๋ก ๋ค์ ๊ณต๊ธํ์ญ์์ค . ์ธ์ ๋ ์ฌ๋ณธ์ ์คํ์ ๋ค์ ํธ๋ฆฌ๊ฑฐ๋ก ์ฌ์ฉ๋ฉ๋๋ค (๋ฏธ๋ฌ๋ ๋ํ M
์ผ์ชฝ์์ ๋ฟ๋๋ก ๊ฐ์ฅ์๋ฆฌ ์ฃผ์๋ก ์ ์กํฉ๋๋ค ).
์คํ์ด ๋น๋ฉด K
์์๋ ์์๋ฅผ ๋ฐ์ฌํ๊ณ ์๋์ง๋ฅผ์ผ๋ก ๋ณํ +1
ํ์ฌ์ ํต๊ณผํฉ๋๋ค S
. N
์ค ๋ฐ๊ฟ์ ์ธ์ํฉ๋๋ค (๋จ์ง ๊น๋ํ๊ธฐ ๋๋ฌธ์). ๊ทธ๋ฆฌ๊ณ ์์๋ R'0
๋ค์ ์์ผ๋ก Y
๊ฐ๋๋ค. ์ฃผ๋ณ์ ๋ ์ด์ ์์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๊ฒฐ์ฝ ํด์ ๋์ง ์๊ณ ํ๋ก๊ทธ๋จ์ด ์ข
๋ฃ๋ฉ๋๋ค.
๋ถ์ด ์ ๊ณ์ฐ : ํ๋ ์ ์ํฌ
ํ๋ก๊ทธ๋จ์ ์ค์ ๊ณ ๊ธฐ๋ฅผ ๋ณด์. ์ฝ๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก Mathematica ์ฐธ์กฐ ๊ตฌํ์ ํฌํธ์ ๋๋ค.
fission[n_] := If[
(div =
SelectFirst[
Reverse@Divisors[2 n],
(OddQ@# == IntegerQ[n/#]
&& n/# > (# - 1)/2) &
]
) == 1,
1,
1 + Total[fission /@ (Range@div + n/div - (div + 1)/2)]
]
์ฌ๊ธฐ์ div
์ต๋ ํํฐ์
์ ์ ์ ์์
๋๋ค.
์ฃผ์ ์ฐจ์ด์ ์ Fission์์ ๋ฐ์ ์ ๊ฐ์ ์ฒ๋ฆฌ ํ ์ โโ์์ผ๋ฏ๋ก 2๋ฅผ ๊ณฑํ ๋ง์ ์์
์ ์ํํ๊ณ Fission์๋ ์ฌ๊ท๊ฐ ์๋ค๋ ๊ฒ์
๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํ์์ ํํฐ์
์ ๋ชจ๋ ์ ์๋ฅผ ํธ์ํ์ฌ ๋์ค์ ์ฒ๋ฆฌํฉ๋๋ค. ์ฒ๋ฆฌํ๋ ๊ฐ ๋ฒํธ์ ๋ํด ์นด์ดํฐ๋ฅผ ํ๋์ฉ ์ฆ๊ฐ์ํค๊ณ ๋๊ธฐ์ด์ด ๋น๋ฉด ์นด์ดํฐ๋ฅผ ํด์ ํ์ฌ ์ธ์๋ฅผ ์ํด ๋ฐ์กํฉ๋๋ค. ๋๊ธฐ์ด ์ FIFO ์์ Q
์ ๋๊ฐ์ด ์๋ํฉ๋๋ค K
.
์ด ๊ฐ๋ ์ ํ๋ ์ ์ํฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
+--- input goes in here
v
SQS ---> compute div from n D /8/
~4X | /~KSA /
3 +-----------> { +X
initial trigger ---> W 6~@/ \/
4
W ^ /
| 3
^ generate range |
| from n and div <-+----- S6
| -then-
+---- release new trigger
๊ฐ์ฅ ์ค์ํ ์๋ก์ด ๊ตฌ์ฑ ์์๋ ์ซ์์
๋๋ค. ์ด๋ค์ ํ
๋ ํฌํฐ์
๋๋ค. ์ซ์๊ฐ ๊ฐ์ ๋ชจ๋ ํ
๋ ํฌํฐ๋ ํจ๊ป ์ํด ์์ต๋๋ค. ์์๊ฐ ํ
๋ ํฌํฐ์ ๋ถ๋ชํ๋ฉด ๊ฐ์ ๊ทธ๋ฃน์์ ๋ค์ ํ
๋ ํฌํฐ๋ฅผ ์ฆ์ ์ด๋ ์ํค๋ฉฐ, ์ฌ๊ธฐ์ ๋ค์ ์ ์ผ๋ฐ์ ์ธ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ, ์์์ ์๋ ์์๋ก ๊ฒฐ์ ๋ฉ๋๋ค. ์ด๊ฒ๋ค์ ํ์ํ์ง ์์ง๋ง ๋ ์ด์์์ ๋์์ด๋ฉ๋๋ค (๋ฐ๋ผ์ ์ฝ๊ฐ์ ๊ณจํ๋ฅผ ์น์ญ์์ค). ๋ํ์ด X
๋จ์ํ ๋๋ฐ๋กํ๊ณ ๋ค๋ฅธ ๋ค๋ก ์ฌ๋ณธ์ ๋ณด๋ด ์์๋ฅผ ๋ณต์ ํ๋ค.
์ด์ ๋ ๋๋ถ๋ถ์ ํ๋ ์ ์ํฌ๋ฅผ ์ง์ ์ ๋ ฌ ํ ์ ์์ต๋๋ค. ์ผ์ชฝ ์๋จ์๋ ์ฒ๋ฆฌ ํ ๊ฐ ๋๊ธฐ์ด์ด ์์ผ๋ฉฐ ํ ๋ฒ n
์ ํ๋์ฉ ํด์ ๋ฉ๋๋ค. ํ๋์ ์ฌ๋ณธ์ n
๋ฒ์๋ฅผ ๊ณ์ฐํ ๋ ํ์ํ๊ธฐ ๋๋ฌธ์ ๋งจ ์๋๋ก ์๊ฐ ์ด๋๋๊ณ ๋ค๋ฅธ ์ฌ๋ณธ์ ๋งจ ์์ ๋ธ๋ก์ผ๋ก ์ด๋ํฉ๋๋ค div
(์ด๊ฒ์ ์ฝ๋์ ๊ฐ์ฅ ํฐ ๋จ์ผ ์น์
์
๋๋ค). ์ผ๋จ div
๊ณ์ฐ ๋๋ฉด ๋ณต์ ๋ฉ๋๋ค. ํ ์ฌ๋ณธ์ ์ค๋ฅธ์ชฝ ์๋จ์ ์นด์ดํฐ๋ฅผ ์ฆ๋ถํ์ฌ์ ์ ์ฅ๋ฉ๋๋ค K
. ๋ค๋ฅธ ์ฌ๋ณธ์ ๋งจ ์๋๋ก ์๊ฐ ์ด๋๋ฉ๋๋ค. div
was 1
์ธ ๊ฒฝ์ฐ ์ฆ์ ์์ชฝ์ผ๋ก ํธํฅ์ํค๊ณ ์ ๊ฐ์ ํ์ ๋ฃ์ง ์๊ณ ๋ค์ ๋ฐ๋ณต์ ํธ๋ฆฌ๊ฑฐ๋ก ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉ div
ํ๊ณ n
ํ๋จ์ ์น์
์์ ์ ๋ฒ์ (์ฆ, ํ์ ๋ฐฐ์น๋๋ ํด๋น ์ง๋์ ๊ฐ์ง ์์ ์คํธ๋ฆผ)๋ฅผ ์์ฑ ํ ๋ค์ ๋ฒ์๊ฐ ์๋ฃ๋ ํ ์ ํธ๋ฆฌ๊ฑฐ๋ฅผ ํด์ ํฉ๋๋ค.
๋๊ธฐ์ด์ด ๋น๋ฉด ํธ๋ฆฌ๊ฑฐ๊ฐ ๋ฐ์๋์ด S
์ค๋ฅธ์ชฝ ์๋จ์ ๋๋ฐ๋ก ์ง๋๊ฐ๊ณ ์ค๋ฅธ์ชฝ ์๋จ์ ๋ค์ ๋ํ๋ ์นด์ดํฐ๊ฐ (์ต์ข
๊ฒฐ๊ณผ)๋ฅผ ํด์ A
ํ ๋ค์ itoa
via ๋ก ์๊ฐ ์ด๋๋ฉ๋๋ค 8
.
๋ถ์ด ์ ๊ณ์ฐ : ๋ฃจํ ๋ฐ๋
๋จ์ ๊ฒ์ div
๋ฒ์ ๋ฅผ ๊ณ์ฐ ํ๊ณ ์์ฑํ๋ ๋ ์น์
์
๋๋ค. ์ปดํจํ
div
์์ด ๋ถ๋ถ์
๋๋ค.
;
{+L /$ \/\/\/\/\/ 5/ @ [~ &@[S\/ \
/A@[ %5 /; & K } [S/
\ A$@S S\/ \/\/\/ \/>\ /S]@A / \
X X /> \ +\ A\ / \ /
/ ~A\; +;\ /@
ZX [K / {/ / @ @ } \ X @
\AS </ \V / }SZS S/
X ;;@\ /;X /> \ ; X X
\@+ >/ }$S SZS\+; //\V
/ \\ /\; X X @ @ \~K{
\0X / /~/V\V / 0W//
\ Z [K \ //\
\ /\7\A /;7/\/
์๋ง๋ ์ธ๋ด์ฌ์ ๊ฐ์ง๊ณ ์ค์ค๋ก๋ฅผ ํด๊ฒฐํ ์์์๋งํผ ์ถฉ๋ถํ ๋ณด์์ ๊ฒ์
๋๋ค. ๋์ ์์ค์ ๋ถ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ฒ์ 12 ๊ฐ ์ด์ ์ฝ์์ ์ ์๋ฅผ ์์ฑํฉ๋๋ค 2n
. ๋ค์ 10 ๊ฐ์ ์ด์ ๋ง์กฑํ์ง ์๋ ์ด์ ํํฐ๋งํฉ๋๋ค OddQ@# == IntegerQ[n/#]
. ๋ค์ 8 ๊ฐ์ ์ด์ ๋ง์กฑํ์ง ์๋ ์ด์ ํํฐ๋งํฉ๋๋ค n/# > (# - 1)/2)
. ๋ง์ง๋ง์ผ๋ก ์ ํจํ ๋ชจ๋ ์ ์๋ฅผ ์คํ์ ๋ฃ๊ณ ์๋ฃ๋๋ฉด ์ ์ฒด ์คํ์ ์ตํฉ ๋ฐ์๊ธฐ๋ก ๋น์ฐ๊ณ (๋ง์ง๋ง / ์ต๋ ์ ์๋ฅผ ์ ์ธํ ๋ชจ๋ ๊ฒ์ ๋ฎ์ด ์๋๋ค) ๊ฒฐ๊ณผ๋ฅผ ๋ฐฉ์ถ ํ ๋ค์ ์๋์ง๋ฅผ ์ ๊ฑฐํฉ๋๋ค ๋ถ๋ฑ์์ ํ์ธํ๋ -zero).
์ค์ ๋ก ์๋ฌด๊ฒ๋ํ์ง ์๋ ๋ง์ ๋ฏธ์น ๊ธธ์ด ์์ต๋๋ค. ์ฃผ๋ก \/\/\/\/
์๋จ ์ ๊ด๊ธฐ ( 5
๋ค๋ ๊ทธ ์ผ๋ถ ์)์ ํ๋จ ์ฃผ์์ ํ ๊ฒฝ๋ก ( 7
s๋ฅผ ํต๊ณผํ๋ ๊ฒฝ๋ก ). ๋๋ ๋ถ์พํ ๊ฒฝ์ ์กฐ๊ฑด์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ด๊ฒ์ ์ถ๊ฐํด์ผํ์ต๋๋ค. ํต๋ถ์ด์ ์ง์ฐ ์ฑ๋ถ์ ์ฌ์ฉํ ์ ์์ต๋๋ค โฆ
์๋ก์ด ๋ฒ์๋ฅผ ์์ฑํ๋ ์ฝ๋ ๋ ๋ค์ n
๊ณผ div
๊ฐ์ต๋๋ค.
/MJ $$\
4}K~@\ &] @\ 3/\
\{ }$A/1 2 }Y~K <\
\@ / \@<+@^ 1;}++@
2 ; \ /
๋จผ์ ๊ณ์ฐํ๊ณ n/div - (div + 1)/2
(๋ ์ธต ๋ชจ๋ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ์ฐ์ถ ํจ) ๋์ค์ ์ ์ฅํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ div
์๋์์ ๋ฒ์๋ฅผ ์์ฑ 1
ํ๊ณ ์ ์ฅ๋ ๊ฐ์ ๊ฐ๊ฐ์ ์ถ๊ฐํฉ๋๋ค.
์ด ๋ ๊ฐ์ง ๋ชจ๋์ ๋ ๊ฐ์ง ์๋ก์ด ๊ณตํต ํจํด์ด ์์ต๋๋ค. ํ๋๋ ์๋์์ SX
๋๋ ZX
ํํธ (๋๋ ํ์ ๋ ๋ฒ์ )์
๋๋ค. ์ด ๋ฐฉ๋ฒ์ ํ๋์ ์ฌ๋ณธ์ ๋๋ฐ๋ก ์งํํ๋ ค๋ ๊ฒฝ์ฐ ์์๋ฅผ ๋ณต์ ํ ์์๋ ์ข์ ๋ฐฉ๋ฒ์
๋๋ค (์ตํฉ ๋ฐ์๊ธฐ์ ์ถ๋ ฅ์ ๋ฆฌ๋๋ ์
ํ๋ ๊ฒ์ด ๋๋๋ก ๋ฒ๊ฑฐ๋ก์ธ ์ ์๊ธฐ ๋๋ฌธ์). S
๋๋ Z
๋ก ์์๋ฅผ ํ์ X
ํ๊ณ ์๋ก ์ ํ์ ์๋ ๋ฐฉํฅ์ผ๋ก ๋ฏธ๋ฌ ์นดํผ๋ฅผ ํ์ ์ํจ๋ค.
๋ค๋ฅธ ํจํด์
[K
\A --> output
๊ฐ์ ์ ์ฅ ํ๋ฉด ์๋จ์์ ์์ ์๋์ง๋ฅผ K
์ณ์ ๋ฐ๋ณต์ ์ผ๋ก ๊ฒ์ ํ ์ ์์ต๋๋ค K
. A
์ค๋ณต ๊ฐ์ ์ฐ๋ฆฌ๋ ๊ด์ฌ๊ณผ ์ฐ๋ฆฌ๊ฐ ๋ค์์ ํ์ํ ๋๋ฅผ์ํ ์คํ์ ๋ฐ๋ก ๋ค์ ๋ณต์ฌ ๋ฌด์์ ๋ณด๋
๋๋ค.
๊ธ์์, ๊ทธ๊ฑด ๊ฝค ํฐ ์ฃผ์ ์์ง๋ง โฆ ๋ง์ฝ ๋น์ ์ด ์ค์ ๋ก ์ด๊ฒ์ ํต๊ณผํ๋ค๋ฉด, ๋น์ ์ Fission iอsฬขฬฬฬ อขiฬnรงฬฎฬฉrฬธฬญฬฌฬฑอeฬฬนฬฬอdฬiฬ ออฬอฬฏbฬฬ อฬญฬฐฬผlฬถฬชฬฬฎฬฅฬฎyฬ ฬ อฬบอ อฬฌฬฎfฬอuฬฑฬฆฬฐอnอ ฬฬ ฬtฬธฬณฬฉฬo ฬซอฬอ แนฬขฬขฬขฬฏฬฑฬญฬฑฬญฬฬฬฬคฬrฬขฬrฬขฬขฬขฬขฬขฬขฬขฬขฬขฬขฬขฬขฬขฬขฬขฬขฬขฬขฬขฬขฬขฬขฬขฬขฬขฬขฬขฬขออฬฬฬคฬฬฬคฬฬฬฬฬฬคฬฬฬฬคฬฬฬฬฬคฬฬฬฬฬคฬฬฬฬฬคฬฬฬฬคฬฬฬฬคฬฬฬฬฬฬณฬญอฬฬฬฬณฬญอฬณฬญอฬณฬญอฬฬฬณฬญอฬณฬญอฬณฬญอฬฬณฬญอฬณฬญออ อ อ อ อ อ อ อ อ อ Bฬณฬญออ Bออฬฬอ Bออฬฬอ Bออฬฬอ Bออฬฬอ BฬซฬBออฬฬอ Bออฬฬอ BฬฬณอฬนBฬฬณอฬนBฬฬณอฬนBฬฬณอฬนBฬฬณอฬนBฬฬณอฬนBฬฬณอฬนBฬฬณอฬนBฬฬณอฬนBฬฬณอฬนBฬฬณอฬนBฬฬณอฬนBฬขฬBฬฬณอฬนBฬณฬญออ BฬฬณอฬนBฬขฬBฬฬณอฬนBฬขฬBฬขฬBฬขฬBฬขฬBฬขฬBฬณฬญออ BฬขฬBฬณฬญออ BฬขฬBฬณฬญออ BฬขฬBฬณฬญออ BฬขฬBฬณฬญออ BฬขฬBฬขฬBฬขฬBฬขฬBฬณฬญออ Bฬณฬญออ Bฬณฬญออ Bฬณฬญออ Bฬณฬญออ BฬณBฬณBฬณBฬณBฬณBฬณฬญออ BฬณBฬณBฬณBฬณBฬณBฬณBฬณBฬณBฬณBฬณBฬณBฬณBฬณBฬณBฬณฬฬณอฬนฬณ
๋ต๋ณ
CJam, 42 41 ๋ฐ์ดํธ
ri]{_{:X,:)_few:+W%{1bX=}=}%{,(},e_}h]e_,
๊ฐ๋จํ ๋๋น ์ฐ์ ์ํ ๋ฐ ๋ค์ ๋ ๋ฒจ์ด ๋น์ด์๋ ์ ์ง ์กฐ๊ฑด.
์๋ ๋ฐฉ์ :
ri] e# This represents the root of the fissile tree
{ }h e# Now we run a do-while loop
_{ }% e# Copy the nodes at the current level and map them
e# via this code block to get next level nodes
:X,:) e# Store the node value in X and get array [1..X]
_few e# Copy the array and get continuous slices of
e# length 1 through X from the array [1..X]
:+W% e# Right now, we have an array of array with each
e# array containing slice of same length. We join
e# those arrays and reverse them to get slices of
e# higher length in front of lower lengths
{1bX=}= e# Choose the first slice whose sum is same as X
e# The reversal above makes sure that we give
e# preference to slice of higher length in case of
e# multiple slices add up to X
{,(}, e# Filter out slices of length 1 which basically
e# mean that the current node cannot be split up
e_ e# Join all slices in a single array. This is our
e# next level in the Fissile tree. If this is empty
e# it means that all no further node can be
e# decomposed. In an {}h do-while loop, this fact
e# itself becomes the stopping condition for the
e# loop
]e_, e# Wrap all levels in an array. Flatten the array
e# and take its length
๋ต๋ณ
ํ์ด์ฌ 3, 112 ๋ฐ์ดํธ
def f(n,c=0):
d=n-c;s=(n-d*~-d/2)/d
return(s%1or s<1)and f(n,c+1)or+(d<2)or-~sum(f(int(s)+i)for i in range(d))
@FryAmTheEggman ๋๋ถ์ 4 ๋ฐ์ดํธ๊ฐ ์ ์ฝ๋์์ต๋๋ค.
๋์ค์ ์ค๋ช โฆ
๋ณด๋์ค ์ฌ์ค : 2์ ๋ชจ๋ ๊ฑฐ๋ญ ์ ๊ณฑ์ 1์ ํต๋ถ์ด ์๋ฅผ ๊ฐ์ต๋๋ค. ์ด๋ ์ง์ ๊ธธ์ด ์ํ์ค์ ํฉ์ด ํญ์ ๋ ์ค๊ฐ ์ซ์์ ํฉ์ด๋ฏ๋ก ํ์, ์ํ์ค ๊ธธ์ด์ ์ ๋ฐ์ ๊ณฑํ ์ ์์ ๋๋ค. . ํ์ ๊ธธ์ด ์ํ์ค์ ํฉ์ ์ค๊ฐ ๊ธธ์ด์ ์ํ์ค ๊ธธ์ด๋ฅผ ๊ณฑํ ๊ฐ์ด๋ฉฐ ํ์์ ๋๋ค. ๋ฐ๋ผ์ 2์ ๊ฑฐ๋ญ ์ ๊ณฑ์๋ ํ์ ์ ์๊ฐ ์์ผ๋ฏ๋ก ์์ฒด ํฉ์ผ๋ก ๋ง ํํํ ์ ์์ต๋๋ค.
๋ต๋ณ
ํ์ด์ฌ (2), 111 (102) 97 ๋ฐ์ดํธ
๋ค์ ์ฝ๊ธฐ ์ฌ์ด :
def f(n,c=0):a=n-c;b=n-a*~-a/2;return 1/a or-~sum(map(f,range(b/a,b/a+a)))if b>b%a<1else f(n,c+1)
์ฝ์ ์์๋ ๋ด์ฉ :
def f(n,a=0):b=n-a*~-a/2;return b>0and(f(n,a+1)or b%a<1and(1/a or-~sum(map(f,range(b/a,b/a+a)))))
๋ 97 ๋ฐ์ดํธ
b
๋ IS n
๋ง์ด๋์ค๋ฅผ (a-1)th
์ผ๊ฐํ ์. ๊ฒฝ์ฐ b % a == 0
, ๋ค์ n
์ ํฉ๊ณ์
๋๋ค a
๋ถํฐ ์ฐ์ ๋ฒํธ b
.
๋ต๋ณ
ํ์ด์ฌ 2, 86
f=lambda n,R={1}:n-sum(R)and f(n,R^{[min(R),max(R)+1][n>sum(R)]})or-~sum(map(f,R-{n}))
๋ ๊ณจํ :
def f(n,R={1}):
d=sum(R)-n
if d==0:return (sum(map(f,R-{n}))
if d<0:return f(n,R|{max(R)+1})
if d>0:return f(n,R-{min(R)})
์์ด๋์ด๋์ ํฉ์ฐ๋๋ ์ฐ์ ์ ์์ ์ ์ฌ์ ์คํ์ ํ
์คํธํ๋ ๊ฒ์
๋๋ค n
. ์คํ์ R
์๋ ํฌ์ธํธ๋ฅผ ํตํ์ง ์๊ณ ์ธํธ๋ก ์ง์ ์ ์ฅ๋ฉ๋๋ค .
์ฐ๋ฆฌ๋ ํ์ฌ ๋ฐ์ ํฉ๊ณ n
๊ฐ ์ฐจ์ด๋ฅผ ํตํด ์ํ๋ ํฉ๊ณ ์ ์ด๋ป๊ฒ ๋น๊ต๋๋์ง ํ์ธํฉ๋๋ค .
- ํฉ์ด ๋๋ฌด ํฌ๋ฉด ๋ฐ์์ ๊ฐ์ฅ ์์ ์์๋ฅผ ์๋ฆ ๋๋ค.
- ํฉ์ด ๋๋ฌด ์ ์ผ๋ฉด ์ต๋ ๊ฐ์ 1๋งํผ ํฌ๊ฒํ์ฌ ๋ฐ์ ์ฐ์ฅํฉ๋๋ค.
- ํฉ์ด ์ ํํ๋ฉด ์ฌ๊ท
f
ํ๊ณ ์คํ์ ๋งคํ ํ๊ณ ํฉ์ฐํ์ฌ ํ์ฌ ๋ ธ๋์ 1์ ๋ํฉ๋๋ค. run์ด{n}
์ธ ๊ฒฝ์ฐ ์ฌ์ํ ๊ฐ๋ฅํ ํฉ๊ณ๋ฅผ ๋ชจ๋ ์๋ํ ํn
๋จผ์ ์ ๊ฑฐํ์ฌ ์ฌ๊ท๋ฅผ ์ค์งํ์ญ์์ค .
3์๋ฅผ ์ ์ฝ ํ Sp3000์ ๊ฐ์ฌํฉ๋๋ค.
๋ต๋ณ
ํ์ด์ฌ 2, 85
์ด ๋ต๋ณ์ n = 9์ ๊ฒฝ์ฐ ์์ญ ์ด๊ฐ ๊ฑธ๋ฆฌ๊ณ n = 10์ ๊ฒฝ์ฐ 5-10 ๋ถ์ด ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์์ด ๋ต๋ณ์ ๋งค์ฐ ์๋์ค๋ฝ๊ฒ ์๊ฐํฉ๋๋ค. ์ฝ๋ ๊ณจํ์์ ์ด๊ฒ์ ํ๋ก๊ทธ๋จ์ ๋ฐ๋์งํ ์์ฑ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
f=lambda n,a=1,d=1:a/n or[f(a)+f(n-a,1+1%d*a)+1/d,f(n,a+d/n,d%n+1)][2*n!=-~d*(2*a+d)]
๋๋ฌด ์ค๋ ๊ฑธ๋ฆฌ์ง ์๊ณ ๋์ผํ ์์ ๋ฐ์ดํธ๋ฅผ ์ฌ์ฉํ๋ ๋จ๋ฝ ๋ฒ์ ๋ ์์ต๋๋ค.
f=lambda n,a=1,d=1:a/n or~d*(2*a+d)+n*2and f(n,a+d/n,d%n+1)or f(a)+f(n-a,1+1%d*a)+1/d
๋ ๋น ๋ฅผ ์ ์์ง๋ง n์ด 40์ ์ฝ๊ฐ ์ด๊ณผํ๋ฉด ์ต์ํ ๊ธฐ๋ณธ ์ฌ๊ท ์ ํ์ ์ด๊ณผํฉ๋๋ค.
์์ด๋์ด๋ ์ซ์์ ๋ํ ๋ฌด๋ ฅ ๊ฒ์ํ๋ ๊ฒ์
๋๋ค a
์ d
๊ฐ์ ๊ฒ์ a + a+1 + ... + a+d == n
1 ์ฌ์ด์ ๊ฐ์, n
. f(n,a+d/n,d%n+1)
์ฌ๊ท ์ ๋ถ๊ธฐ๋ (a, d)
์์ ํตํด ๋ฐ๋ณต๋ฉ๋๋ค . ํ๋ฑ์ด ์ถฉ์กฑ๋๋ ๊ฒฝ์ฐ map(range(...))
์ํ์ค ๊ธธ์ด์ ๊ด๊ณ์์ด ๋ ๊ฐ์ ์ง์ ์ผ๋ก ๋ถํ ํ์ฌ ๋น์ผ ํตํ ๋ฅผ ํผํ ์ ์์ต๋๋ค. ๋งค๊ฐ ๋ณ์ ๋ฅผ ์ค์ ํ์ฌ ์ํ์ค๋ฅผ ๋๋๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์๋๋ก ํ ๋ฒ์ ํธ์ถ๋ก ์ซ์ a+1
๋ฅผ d
๋ฌถ ์ต๋๋ค.f
a