๋ฌธ์ œ

Problem https://www.acmicpc.net/problem/1740

ํ’€์ด ๊ณผ์ •

์ด ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ์ „ ๋น„ํŠธ ๋งˆ์Šคํ‚น์ด๋ผ๋Š” ๊ฐœ๋…์„ ์ œ๋Œ€๋กœ ์•Œ์ง€ ๋ชปํ•œ ์ƒํƒœ๋กœ ์ ‘๊ทผํ–ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ์ˆ˜ํ•™์ ์œผ๋กœ ์ ‘๊ทผํ–ˆ์—ˆ๋‹ค.

\(3^0 = 1\)\(3^1 = 3\)\(3^2=9\)\(3^3=27\) \(...\)

3์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ์€ ์œ„์™€๊ฐ™์ด ์ค„์ค„์ด ์ด์–ด์ง„๋‹ค. ์—ฌ๊ธฐ์„œ ๊ฑฐ๋“ญ์ œ๊ณฑ ํ•ฉ์˜ ์กฐํ•ฉ ์„ ๋งŒ๋“ค์–ด์•ผ๋˜๋Š”๋ฐ ํ•ฉ์„ ๋Š˜์–ด๋†“์•˜์„๋•Œ ๊ฐ ํ•ฉ๋“ค์˜ ๊ฐ’์ด ์„œ๋กœ ๊ฒน์น˜๋ฉด ์•ˆ๋˜๊ณ  ์ž‘์€์ˆ˜์—์„œ ํฐ์ˆ˜ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฐ์—ด๋˜์–ด์•ผํ•œ๋‹ค.

๋‚˜๋Š” ์—ฌ๊ธฐ์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ˆ˜์˜ ํ•ฉ์„ ๋งŒ๋“ค์—ˆ๋‹ค.

  1. ๊ฑฐ๋“ญ์ œ๊ณฑ ์ˆ˜ ์ค‘์—์„œ ํ•˜๋‚˜๋ฅผ ์ž„์˜๋กœ ์„ ํƒํ•œ๋‹ค.
  2. ์„ ํƒ๋œ ์ˆ˜๋ณด๋‹ค ์ž‘์€ ์ˆ˜(๊ฑฐ๋“ญ์ œ๊ณฑ ์ˆ˜ ์ค‘)๋“ค๋กœ ๋งŒ๋“ค์ˆ˜ ์žˆ๋Š” ์กฐํ•ฉ๋“ค์„ ๋ชจ๋‘ ๋‚˜์—ดํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•ฉ๋“ค์„ ๊ตฌํ•ด์„œ ๋‚˜์—ดํ•˜๋ฉด ์ด๋Ÿฐ์”ฉ์œผ๋กœ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. |์ž„์˜ ์„ ํƒ ์ˆ˜ | ํ•ฉ ๊ฒฝ์šฐ์˜ ์ˆ˜ | |โ€“|โ€“| |\(3^0\) | 1 | | \(3^1\) | 3 4 | | \(3^2\) | 9 10 13 12 | | \(3^3\) | 27 30 37 36 31 39 40 28 | |\(...\)|\(...\)| ์ด๋ ‡๊ฒŒ ์ค„๊ธฐ์™€ ์žŽ ๊ทธ๋ฆผ ์Šค๋Ÿฝ๊ฒŒ ์ •๋ฆฌ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๊ทธ๋ฆผ์„ ๋ณด๋ฉด ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด ํ•ฉ๋“ค์ด ์„œ๋กœ ๊ฒน์น˜์ง€ ์•Š๊ณ  ๊ฐ ์ž„์˜ ์„ ํƒ ์ˆ˜๋“ค์— ์žˆ๋Š” ํ•ฉ ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ์œ„, ์•„๋ž˜์˜ ๊ฐ’๋“ค ์‚ฌ์ด์— ๋ชจ๋‘ ์กด์žฌํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์—ฌ๊ธฐ์„œ ๊ณ ๋“ฑํ•™๊ต ํ™•๋ฅ ๊ณผ ํ†ต๊ณ„์—์„œ ๋ฐฐ์šด ์กฐํ•ฉ(Combination)์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์กฐํ•ฉ(Combination)

\[_nC_r = \frac{n!}{r!(n-r)!}\]

์ด ๊ณต์‹์„ ํ™œ์šฉํ•˜์—ฌ ๊ฐ ์ž„์˜์˜ ์„ ํƒ์ˆ˜์—์„œ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ํ•ฉ์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. |์ž„์˜ ์„ ํƒ ์ˆ˜ | ์กฐํ•ฉ ์ˆ˜ | |โ€“|โ€“| |\(3^0\) | \(_0C_0\) | | \(3^1\) | \(_1C_0 + _1C_1\) | | \(3^2\) | \(_2C_0 + _2C_1 + _2C_2\) | | \(3^3\) | \(_3C_0 + _3C_1 + _3C_2 + _3C_3\) | |\(...\)|\(...\)|

์‚ฌ์šฉ์ž๋กœ ๋ถ€ํ„ฐ N๋ฒˆ์งธ๋กœ ์ž‘์€ ์ˆ˜๋ฅผ ๊ตฌํ•ด๋‹ฌ๋ผ๋Š” ์š”์ฒญ์ด ์™”์„๋•Œ ์ž„์˜ ์„ ํƒ ์ˆ˜ ์˜ ์กฐํ•ฉ์ˆ˜๋ฅผ ์œ„์—์„œ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ N์—์„œ ๋บ„์…ˆ ํ•จ์œผ๋กœ์จ ๋”์ด์ƒ ๋บ„์…ˆ์ด ์•ˆ๋ ๋•Œ๊นŒ์ง€(์ด ์ด์ƒ ๋นผ๋ฉด N<0 ์ด ๋˜๋Š” ๊ฒฝ์šฐ) ์ง„ํ–‰ํ•œ๋‹ค์Œ ๋บ„์…ˆ์ด ์ค‘๋‹จ๋œ ์ž„์˜์˜ ์„ ํƒ์ˆ˜์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜ ๋ถ€ํ„ฐ ํ•ฉ์„ ๊ฒ€์ƒ‰ํ•˜๋ฉด ์ƒ์œผ๋กœ ์ฐพ๋Š”๊ฒƒ๋ณด๋‹ค ์—ฐ์‚ฐ ์‹œ๊ฐ„์„ ๋‹จ์ถ• ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด N=14์ผ๋•Œ

\[14 - (_0C_0) - (_1C_0 + _1C_1) - (_2C_0 + _2C_1 + _2C_2) = 14 - 1 - 2 - 4 = 7\]

์ด ๋˜๊ณ , ์ž„์˜ ์„ ํƒ ์ˆ˜๊ฐ€ $3^2$ ์ผ๋•Œ ๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜ ์ค‘ 7๋ฒˆ์งธ๋กœ ์ž‘์€ ์ˆ˜๋ฅผ ์ฐพ์•„์„œ ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์ž„์˜ ์„ ํƒ์ˆ˜์˜ ์ œ๊ณฑ์ˆ˜๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์ด ์กฐํ•ฉ์ˆ˜๋ฅผ ์ผ์ผ์ด ๋”ํ•˜๊ธฐ์—๋Š” ์–ด๋ ค์›€์ด ์ƒ๊ธด๋‹ค. ์ด๋•Œ ํŒŒ์Šค์นผ์˜ ์‚ผ๊ฐํ˜• ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

ํŒŒ์Šค์นผ์˜ ์‚ผ๊ฐํ˜•(Pascalโ€™s Triangle)

Pascal's Triangle ์ถœ์ฒ˜ : (๊ณ ๊ต์ˆ˜ํ•™: ํ™•๋ฅ ๊ณผ ํ†ต๊ณ„ โ”‚ EBSMath) (์‚ผ๊ฐํ˜• ์ตœ์ƒ๋‹จ์— 1์€ $_0C_0$ ์œผ๋กœ ์ทจ๊ธ‰)

์ด ์‚ผ๊ฐํ˜•์—์„œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์„ฑ์งˆ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์†Œ์œ„ โ€œํ•˜ํ‚ค์Šคํ‹ฑ ํŒจํ„ดโ€ ์ด๋‹ค. Hockey Stick Pattern ์ถœ์ฒ˜ : (๊ณ ๊ต์ˆ˜ํ•™: ํ™•๋ฅ ๊ณผ ํ†ต๊ณ„ โ”‚ EBSMath) ์œ„ ๊ทธ๋ฆผ ์ฒ˜๋Ÿผ ์–‘์ชฝ ๋ชจ์„œ๋ฆฌ์—์„œ ์‹œ์ž‘ํ•ด์„œ ํ•˜ํ‚ค์Šคํ‹ฑ ๋ชจ์–‘์œผ๋กœ ์„ ์„ ์ด์—ˆ์„๋•Œ ํ•˜ํ‚ค์Šคํ‹ฑ์˜ ์ผ์ง์„  ๋ถ€๋ถ„์„ ๋ชจ๋‘ ๋”ํ–ˆ์„๋•Œ ํ•˜ํ‚ค์Šคํ‹ฑ์˜ ๊บฝ์ธ ๋๋ถ€๋ถ„์˜ ๊ฐ’์ด ๋‚˜์˜ค๋Š” ์„ฑ์งˆ์ด๋‹ค. ์ด๋ฅผ ์œ„์™€๊ฐ™์€ ๊ฒฝ์šฐ ์ด๋ ‡๊ฒŒ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด N=33์ผ๋•Œ ์ž„์˜์˜ ์„ ํƒ์ˆ˜๊ฐ€ $3^4$์ผ๋•Œ ์กฐํ•ฉ์ˆ˜๊นŒ์ง€์˜ ํ•ฉ์ด ํ•„์š”ํ•œ๋ฐ ์œ„ ์„ฑ์งˆ์„ ์‚ฌ์šฉํ•˜๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ๋‹จ์ˆœํ™” ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. Apply Hockey Stick Pattern \(\sum_{n=0}^{4}{ _nC_0}={_5C_1}\newline \sum_{n=1}^{4}{ _nC_1}={_5C_2}\newline...\newline\sum_{n=4}^{4}{ _nC_4}={_5C_5} \newline\therefore\sum_{n=0}^{4}{\sum_{m=0}^{n}{ _nC_0}=\sum_{z=1}^{5}{_{5}C_z}}\)

๋”ฐ๋ผ์„œ ์ด๋ฅผ ํ†ตํ•ด ์•„๋ž˜ ์ˆ˜์‹์ด ์„ฑ๋ฆฝํ•˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

\(\sum_{n=0}^{k}{\sum_{m=0}^{n}{ _nC_0}=\sum_{z=1}^{k+1}{_{k+1}C_z}}\) ์ด๋ ‡๊ฒŒ ์ˆ˜์‹์„ ๋‹จ์ˆœํ™” ํ•œ ํ›„ ์ตœ์ข…์ ์œผ๋กœ ์ด ์กฐํ•ฉ๋“ค์˜ ํ•ฉ์„ ๊ตฌํ•˜๋Š”๋ฐ๋Š” ์ดํ•ญ์ •๋ฆฌ๋ฅผ ๊ฐ™์ด ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์ดํ•ญ์ •๋ฆฌ

\[(a+b)^k = \sum_{n=0}^k{a^n b^{k-n}{_kC_n}}\]

์ด ๊ณต์‹์—์„œ a=1,b=1์„ ๋Œ€์ž…ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

\[2^k = \sum_{n=0}^k{_kC_n}\]

์—ฌ๊ธฐ์—์„œ ์–‘๋ณ€์— 1์„ ๋นผ์ฃผ๋ฉด ์ด๋Ÿฐ ์‹์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

\[2^k -1= \sum_{n=0}^k{_kC_n}-1=\sum_{n=1}^k{_kC_n}\]

์ด ๊ณต์‹์„ ํ™œ์šฉํ•˜๋ฉด ์œ„์—์„œ ํ•˜ํ‚ค์Šคํ‹ฑ ํŒจํ„ด์„ ์ด์šฉํ•ด ์ •๋ฆฌํ•œ ์‹์˜ ํ•ฉ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ์ด์šฉํ•ด ์œ„์—์„œ ๊ตฌํ•œ ์‹์„ ํ’€๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. \(\sum_{n=1}^{5}{_{5}C_n} = 2^5-1=31\) ๋”ฐ๋ผ์„œ N์—์„œ 31์„ ๋นผ๋ฉด 2๊ฐ€ ๋˜๋ฏ€๋กœ ์ด๋ฅผ ํ†ตํ•ด ์•„๋ž˜์˜ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

  1. N=33์ผ๋•Œ ์ž„์˜์˜ ์„ ํƒ์ˆ˜๊ฐ€ $3^5$์ผ๋•Œ ์กฐํ•ฉ ์ค‘์— ์กด์žฌํ•œ๋‹ค.
  2. ์ž„์˜์˜ ์„ ํƒ์ˆ˜๊ฐ€ $3^5$์ผ๋•Œ ๋‚˜์˜ค๋Š” ๊ฐ’์„ ์ž‘์€ ์ˆœ์„œ ๋Œ€๋กœ ๋‚˜์—ด ํ–ˆ์„ ๋•Œ 2๋ฒˆ์งธ์— ๊ฐ’์ด ์กด์žฌํ•œ๋‹ค.

๊ทธ ๋‹ค์Œ ์ตœ์ข…์ ์œผ๋กœ ๊ฐ’์„ ์•Œ์•„๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•ด๋‹น ์„ ํƒ ์ˆ˜์—์„œ ์กฐํ•ฉ๋ ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋“ค์„ ์–ด๋–ค์ˆœ์„œ๋กœ ์กฐํ•ฉํ•˜์—ฌ ๋”ํ–ˆ์„๋•Œ ์ž‘์€์ˆ˜์—์„œ ํฐ์ˆ˜ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜์—ดํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•ด์•ผํ•œ๋‹ค.

์—ฌ๋Ÿฌ๋ฒˆ์˜ ๊ฒฝ์šฐ๋ฅผ ํ™•์ธํ•ด๋ณธ๊ฒฐ๊ณผ ์•„๋ž˜์™€ ๊ฐ™์€ ์ˆœ์„œ๋Œ€๋กœ ํ•ฉ์„ ๋‚˜์—ดํ•˜์˜€์„๋•Œ ์œ„ ์กฐ๊ฑด์„ ๋งŒ์กฑํ–ˆ๋‹ค.

  1. ์ž„์˜์˜ ์ˆ˜ ํ˜ผ์ž๋งŒ ์žˆ์„๋•Œ ๊ฐ€์žฅ ์ž‘์€์ˆ˜.
  2. ์ž„์˜์˜ ์ˆ˜๋ณด๋‹ค ์ž‘์€์ˆ˜์ค‘์—์„œ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜๋ฅผ ์ž„์˜๋กœ ๋˜ ์„ ํƒ ํ›„ ํ•ฉ ๊ตฌํ•˜๊ธฐ
  3. ๊ทธ ๋‹ค์Œ์œผ๋กœ ์ž‘์€์ˆ˜๋ฅผ ์ž„์˜๋กœ ์„ ํƒํ›„ ๊ทธ ์ˆ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋˜ ์ž‘์€์ˆ˜๊นŒ์ง€ ํ•จ๊ป˜ ๋”ํ•˜๊ธฐ.
  4. ์ด๋ฅผ ๋ฐ˜๋ณต. ๋ง๋กœ ์„ค๋ช…ํ•˜๋‹ˆ ์–ด๋ ค์šฐ๋‹ˆ ์ข€๋” ์‰ฝ๊ฒŒ ๋น„์œ ๋ฅผ ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์ฒซ ์ž„์˜์˜ ์ˆ˜๊ฐ€ $3^5$์ผ๋•Œ ์กฐํ•ฉํ•  ์ˆ˜ ์žˆ๋Š”์ˆ˜๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

| $3^4$ | $3^3$ | $3^2$ | $3^1$ | $3^0$ | | โ€”โ€“ | โ€”โ€“ | โ€”โ€“ | โ€”โ€“ | โ€”โ€“ |

๊ฐ ์ˆ˜๋ฅผ ์ผฐ๋‹ค ๊ป๋‹ค ํ•  ์ˆ˜ ์žˆ๋Š” ์Šค์œ„์น˜๋กœ ์ƒ์ƒํ•ด๋ณด์ž | $3^4$ | $3^3$ |$3^2$ |$3^1$ |$3^0$ | |โ€“|โ€“|โ€“|โ€“|โ€“| |OFF|OFF|OFF|OFF|OFF| ๋จผ์ € $3^0$์„ ์ผ ๋‹ค. | $3^4$ | $3^3$ |$3^2$ |$3^1$ |$3^0$ | |โ€“|โ€“|โ€“|โ€“|โ€“| |OFF|OFF|OFF|OFF|ON| ์ด์ƒํƒœ๊ฐ€ ์•„๋ฌด๊ฒƒ๋„ ์•ˆํ•ฉ์นœ์ˆ˜ ๋‹ค์Œ์œผ๋กœ ์ž‘์€์ˆ˜๋‹ค. ๊ทธ๋‹ค์Œ $3^0$์„ ๋„๊ณ  $3^1$์„ ์ผ ๋‹ค.

$3^4$ $3^3$ $3^2$ $3^1$ $3^0$
OFF OFF OFF ON OFF

์ด๊ฒŒ ๊ทธ๋‹ค์Œ์œผ๋กœ ์ž‘์€์ˆ˜๊ฐ€ ๋œ๋‹ค. ์ด์ƒํƒœ๋กœ $3^0$์„ ์ผ ๋‹ค. | $3^4$ | $3^3$ |$3^2$ |$3^1$ |$3^0$ | |โ€“|โ€“|โ€“|โ€“|โ€“| |OFF|OFF|OFF|ON|ON| ์ด๊ฒŒ ๊ทธ ๋‹ค์Œ ์ž‘์€์ˆ˜. ๊ทธ๋‹ค์Œ ๋‹ค๋ˆ๋‹ค์Œ $3^2$๋ฅผ ์ผœ๋ฉด ๊ทธ๋‹ค์Œ ์ž‘์€์ˆ˜๊ฐ€ ๋˜๊ณ  ์ด๋ฅผ ์•„๋ž˜์ฒ˜๋Ÿผ ๋ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๋ฉด ์ฐจ๋ก€๋Œ€๋กœ ์ž‘์€์ˆ˜๊ฐ€ ๋‚˜์—ด๋œ๋‹ค. | $3^4$ | $3^3$ |$3^2$ |$3^1$ |$3^0$ | |โ€“|โ€“|โ€“|โ€“|โ€“| |ON|ON|ON|ON|ON| ์ด๋ฅผ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ๊ตฌํ˜„ํ•ด์„œ ์ตœ์ข…์ ์œผ๋กœ ์ž‘์€์ˆ˜๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋„๋ก ํ•˜๋ฉด ๋ฌธ์ œ ํ•ด๊ฒฐโ€ฆ. ์ผ์ค„ ์•Œ์•˜์œผ๋‚˜โ€ฆ result - time out! โ€ฆ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋‹ค. ์ƒ๊ฐ๋ณด๋‹ค ๊ธˆ๋ฐฉ ํ•ด๊ฒฐ๋  ์ค„ ์•Œ์•˜์œผ๋‚˜, ํ•ด๊ฒฐ์ฑ…์ด ๋– ์˜ค๋ฅด๊ธฐ๊นŒ์ง€ ๊ฑฐ์˜ ํ•˜๋ฃจ์ข…์ผ ๊ฑธ๋ ธ๋‹ค. ๋„์ €ํžˆ ํ•ด๊ฒฐ์ฑ…์ด ๋– ์˜ค๋ฅด์ง€ ์•Š์•„ ํ•ด๋‹น ๋ฌธ์ œ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„๋ฅ˜๋ฅผ ํ™•์ธํ–ˆ๋Š”๋ฐ ๋น„ํŠธ๋งˆ์Šคํ‚น ์ด๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ๋ณด์˜€๋‹ค.

์šฉ์–ด ์ •์˜๋ฅผ ์ธํ„ฐ๋„ท์„ ์ฐพ์•„๋ณด์•˜๋‹ค.

๋น„ํŠธ๋งˆ์Šคํฌ(Bit Mask)

์ •์ˆ˜์˜ ์ด์ง„ํ‘œํ˜„(2์ง„์ˆ˜)๋ฅผ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ํ™œ์šฉํ•˜๋Š” ๊ธฐ๋ฒ•

์ด๊ฑธ ํ™•์ธํ•˜๊ณ  ์ด ๊ธฐ๋ฒ•์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋˜ ๋„์ค‘ ์œ„์—์„œ ์Šค์œ„์น˜๋ฅผ ๊ฐ€์ง€๊ณ  ์˜ˆ์‹œ๋ฅผ ๋“  ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋ˆˆ์— ๋“ค์–ด์™”๋‹ค.

์ž‘์€์ˆ˜๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๊ณ„์‚ฐํ•ด์„œ ๋‚˜์—ดํ•˜๋Š” ์ˆœ์„œ๊ฐ€ 2์ง„์ˆ˜๊ฐ’์„ 0์—์„œ๋ถ€ํ„ฐ 1์”ฉ ๋”ํ–ˆ์„๋•Œ ๋‚˜์˜ค๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์œ ์‚ฌํ•œ ๊ฒƒ์„ ๋ฐœ๊ฒฌํ•œ๊ฒƒ์ด๋‹ค.

๋˜‘๊ฐ™์ด for๋ฌธ์„ ํ™œ์šฉํ•˜๋˜ ์•„๋ž˜์™€ ๊ฐ™์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ˆ˜์ •ํ–ˆ๋‹ค.

  1. n=0 ์—์„œ 1์”ฉ ์ฆ๊ฐ€
  2. n์„ 2์ง„์ˆ˜๋กœ ๋ฐ”๊ฟ” ๋ฌธ์ž์—ด๋กœ ์ €์žฅ.
  3. ๋‹ค์‹œ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋งŒํผ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ ค์„œ ์ˆซ์ž๊ฐ€ 1์ธ ์ธ๋ฑ์Šค์˜ ๊ฐ’์€ ๋”ํ•˜๊ณ  0์ด๋ฉด ๋ฌด์‹œํ•˜๋„๋กํ•จ
  4. ์ตœ์ข…์ ์œผ๋กœ n๋ฒˆ์งธ ์ˆ˜์— ๋„๋‹ฌํ•˜๋ฉด ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅ.

๊ทธ๋Ÿฌ๋‚˜ ์—ญ์‹œ๋‚˜ ๋˜ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. Desperation GIF (์ •์‹ ์ด ๋‚˜๊ฐˆ๊ฒƒ ๊ฐ™๋‹คโ€ฆ.) ๋˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์—์„œ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜๋Š”์ง€ ์˜๋ฏธ์—†๋Š” ๋””๋ฒ„๊น…๋งŒ ๋„ ๊ณ„์†ํ•˜๊ณ  ๊ตฌ๊ธ€๋ง์„ ํ•˜๋˜ ๋„์ค‘ ๋น„ํŠธ ์—ฐ์‚ฐ์— ๋Œ€ํ•œ ๊ธ€์„ ๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค.

์ด๊ธ€์—์„œ ์–ด๋–ค์ˆ˜์— ๋˜๋‹ค๋ฅธ ์ˆ˜๋ฅผ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋กœ ๊ณ„์‚ฐํ•˜๋ฉด 2์ง„์ˆ˜๊ธฐ์ค€์œผ๋กœ ๊ฐ ์ž๋ฆฌ๊ฐ€ ๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž๋กœ ๊ณ„์‚ฐ๋˜๋ฉด์„œ ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ ๋‚ด๋†“๊ฒŒ ๋œ๋‹ค๋Š” ๊ฑฐ์˜€๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด 3๊ณผ 11์„ AND(&) ์—ฐ์‚ฐ์ž๋กœ ์—ฐ์‚ฐํ•œ๋‹ค๊ณ  ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์—ฐ์‚ฐ์ด ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. | 3 | 11 |1 | |โ€“|โ€“|โ€“| |1|1|1| |1|0|0| |0|1|0| |0|1|0| ์ฆ‰ 1์ด ๋œ๋‹ค.

์ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ด๋Ÿฐ ์•„์ด๋””์–ด๊ฐ€ ๋– ์˜ฌ๋ž๋‹ค.

  1. ์–ด๋–ค์ˆ˜๊ฐ€ ๋˜์—ˆ๋“  ๊ทธ์ˆ˜์™€ 1์„ AND(&) ์—ฐ์‚ฐ์„ ํ•˜๊ฒŒ ๋˜๋ฉด ๊ฐ€์žฅ ์ž‘์€ ์ž๋ฆฟ์ˆ˜์— ์žˆ๋Š” 2์ง„์ˆ˜๊ฐ€ ๊ฒฐ๊ณผ๋กœ ๋‚˜์˜ค๊ฒŒ ๋จ.
  2. ๋น„ํŠธ๋ฅผ ์šฐ์ธก์œผ๋กœ ์‹œํ”„ํŠธํ•˜๊ณ  1๋ฒˆ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋ฉด ๋ชจ๋“  ์ž๋ฆฌ์˜ 2์ง„์ˆ˜๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

ํŠนํžˆ๋‚˜ ๋น„ํŠธ์—ฐ์‚ฐ์ž‘์—…์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(1)์— ๊ทผ์ ‘ํ•˜๊ธฐ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ดˆ๊ณผ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ์— ์™„๋ฒฝํ•œ ํ•ด๊ฒฐ์ฑ…์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๊ณ  ์ตœ์ข…์ ์œผ๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ๊ณ . ๋“œ๋””์–ด ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š”๋ฐ ์„ฑ๊ณตํ•˜์˜€๋‹ค.

import java.util.Scanner;
public class Main
{
	// ์ œ๊ณฑ ํ•จ์ˆ˜
    static long power(long x, long y){
        long result = 1;
        for(int i=0; i<y; i+=1) result *= x;
        return result;
    }
    // ์กฐํ•ฉ์ˆ˜ ํ•ฉ ๊ณ„์‚ฐ ํ•จ์ˆ˜
    static long squareCombination(long n) {
        return power(2,n)-1;
    }
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
	    long n = Long.parseLong(scan.next());
	    long square,res=0,tmp;
	    // ์กฐํ•ฉ ์—ฐ์‚ฐ์„ ์ด์šฉํ•ด ์ž„์˜์˜ ์ˆ˜ ๊ฐ’ ๊ตฌํ•˜๊ธฐ, n ๋บ„์…ˆ
	    for(square = 0; squareCombination(square+1)<n; square += 1);
	    n -= squareCombination(square);
	    res += power(3,square);
	    tmp = n-1;
	    // ๋น„ํŠธ ์—ฐ์‚ฐ์„ ํ†ตํ•ด ์ตœ์ข…๊ฐ’ ๊ตฌํ•˜๊ธฐ
	    for(long i=0; tmp != 0; i+=1) {
	        res += (tmp&1) == 1 ? power(3,i):0;
	        tmp = tmp >> 1;
	    }
	    System.out.println(res);
	}
}

$โ€ป^1$ ์œ„์—์„œ ์–ธ๊ธ‰ ๋ชปํ–ˆ๋Š”๋ฐ, ์œ ์ €๊ฐ€ ์ž…๋ ฅํ•˜๋Š” N์˜ ๊ฐ’์˜ ์˜ˆ์ƒ ์ตœ๋Œ€์น˜๊ฐ€ $5\times10^{11}$์—ฌ์„œ N์„ ํฌํ•จํ•œ ํฐ์ˆ˜๊ฐ€ ํฌํ•จ๋ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š” ๋ณ€์ˆ˜๋Š” ๋ชจ๋‘ int๊ฐ€ ์•„๋‹Œ long์œผ๋กœ ์„ ์–ธํ–ˆ๋‹ค. | ํƒ€์ž… | ์ตœ๋Œ€ ๊ฐ’ | |โ€“|โ€“| | int | 2,147,483,647 | | long | 9,223,372,036,854,775,807 | $โ€ป^2$์›๋ž˜ ์ž๋ฐ”์— ๊ธฐ๋ณธ ๋‚ด์žฅ๋œ Math.pow()ํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•˜๋ ค๊ณ  ํ•˜์˜€์œผ๋‚˜, ํ•ด๋‹น ํ•จ์ˆ˜๋Š” ๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐํ›„ ๊ฒฐ๊ณผ๋ฅผ ์‹ค์ˆ˜๋กœ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ ์ผ๋ถ€ ๋ถ€์ •ํ™•ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์–ด์„œ ์ง์ ‘ ์ž์ž‘ํ•˜์—ฌ ์‚ฌ์šฉํ•˜์˜€์Œ.