ํƒœ๊ทธ ๋ณด๊ด€๋ฌผ: integer-partitions

integer-partitions

ํ”ผ ์‹ค๋ ˆ ๋ฒˆํ˜ธ / | \

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). (๋”ฐ๋ผ์„œ 0OEIS์— ๋‚˜์™€ ์žˆ๋Š” ์ฃผ์š” ๋‚ด์šฉ์„ ๋‹ค๋ฃฐ ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค .)

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( ๋’ค๋กœ %๊ฐ์†Œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— )์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ๊ทธ ์งˆ๋Ÿ‰์„ ์ œ๊ฑฐํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ์งˆ๋Ÿ‰๊ณผ ์—๋„ˆ์ง€๋ฅผ ๋‹ค์‹œ ๊ตํ™˜ ํ•ฉ๋‹ˆ๋‹ค.10@

์ด ์„น์…˜์„ ๋งˆ์น˜๊ธฐ ์ „์— ํ•˜๋‚˜ ์ด์ƒ์˜ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์†Œ๊ฐœํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค 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. ๋‹ค๋ฅธ ์‚ฌ๋ณธ์€ ๋งจ ์•„๋ž˜๋กœ ์ˆœ๊ฐ„ ์ด๋™๋ฉ๋‹ˆ๋‹ค. divwas 1์ธ ๊ฒฝ์šฐ ์ฆ‰์‹œ ์œ„์ชฝ์œผ๋กœ ํŽธํ–ฅ์‹œํ‚ค๊ณ  ์ƒˆ ๊ฐ’์„ ํ์— ๋„ฃ์ง€ ์•Š๊ณ  ๋‹ค์Œ ๋ฐ˜๋ณต์˜ ํŠธ๋ฆฌ๊ฑฐ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉ divํ•˜๊ณ n ํ•˜๋‹จ์˜ ์„น์…˜์—์„œ ์ƒˆ ๋ฒ”์œ„ (์ฆ‰, ํ์— ๋ฐฐ์น˜๋˜๋Š” ํ•ด๋‹น ์งˆ๋Ÿ‰์„ ๊ฐ€์ง„ ์›์ž ์ŠคํŠธ๋ฆผ)๋ฅผ ์ƒ์„ฑ ํ•œ ๋‹ค์Œ ๋ฒ”์œ„๊ฐ€ ์™„๋ฃŒ๋œ ํ›„ ์ƒˆ ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค.

๋Œ€๊ธฐ์—ด์ด ๋น„๋ฉด ํŠธ๋ฆฌ๊ฑฐ๊ฐ€ ๋ฐ˜์˜๋˜์–ด S์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์— ๋˜‘๋ฐ”๋กœ ์ง€๋‚˜๊ฐ€๊ณ  ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์— ๋‹ค์‹œ ๋‚˜ํƒ€๋‚˜ ์นด์šดํ„ฐ๊ฐ€ (์ตœ์ข… ๊ฒฐ๊ณผ)๋ฅผ ํ•ด์ œ Aํ•œ ๋‹ค์Œ itoavia ๋กœ ์ˆœ๊ฐ„ ์ด๋™๋ฉ๋‹ˆ๋‹ค 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๋“ค๋„ ๊ทธ ์ผ๋ถ€ ์ž„)์™€ ํ•˜๋‹จ ์ฃผ์œ„์˜ ํ•œ ๊ฒฝ๋กœ ( 7s๋ฅผ ํ†ต๊ณผํ•˜๋Š” ๊ฒฝ๋กœ ). ๋‚˜๋Š” ๋ถˆ์พŒํ•œ ๊ฒฝ์Ÿ ์กฐ๊ฑด์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ด๊ฒƒ์„ ์ถ”๊ฐ€ํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ต๋ถ„์—ด์€ ์ง€์—ฐ ์„ฑ๋ถ„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค โ€ฆ

์ƒˆ๋กœ์šด ๋ฒ”์œ„๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ฝ”๋“œ ๋Š” ๋‹ค์Œ 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 == n1 ์‚ฌ์ด์˜ ๊ฐ’์„, n. f(n,a+d/n,d%n+1)์žฌ๊ท€ ์˜ ๋ถ„๊ธฐ๋Š” (a, d)์Œ์„ ํ†ตํ•ด ๋ฐ˜๋ณต๋ฉ๋‹ˆ๋‹ค . ํ‰๋“ฑ์ด ์ถฉ์กฑ๋˜๋Š” ๊ฒฝ์šฐ map(range(...))์‹œํ€€์Šค ๊ธธ์ด์— ๊ด€๊ณ„์—†์ด ๋‘ ๊ฐœ์˜ ์ง€์ ์œผ๋กœ ๋ถ„ํ•  ํ•˜์—ฌ ๋น„์‹ผ ํ†ตํ™” ๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งค๊ฐœ ๋ณ€์ˆ˜ ๋ฅผ ์„ค์ • ํ•˜์—ฌ ์‹œํ€€์Šค๋ฅผ ๋‚˜๋ˆ„๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋„๋ก ํ•œ ๋ฒˆ์˜ ํ˜ธ์ถœ๋กœ ์ˆซ์ž a+1๋ฅผ d๋ฌถ ์Šต๋‹ˆ๋‹ค.fa