๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Problem Solving

[๋ฐฑ์ค€ BOJ - 2164 / ํŒŒ์ด์ฌ] ์นด๋“œ2

by Oh Seokjin 2022. 7. 21.

๐Ÿ” ๋ฌธ์ œ ๋ถ„์„

๋‚˜์—ด๋œ ์นด๋“œ์— ์ผ์ • ๊ทœ์น™(์ฒซ์žฅ ๋ฒ„๋ฆฌ๊ณ , ๊ทธ ๋‹ค์Œ์žฅ์€ ๋งจ ๋’ค๋กœ)์„ ์ ์šฉํ•˜๋ฉฐ, ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ๋‚จ๋Š” ์นด๋“œ ์ฐพ๊ธฐ

 

โ— ํ•ด๊ฒฐ ์•„์ด๋””์–ด 

๋‹ค๋ฅธ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๊ฒ ์ง€๋งŒ, ๋ช‡ ๊ฐœ ์จ๋ณด๋‹ˆ ๊ทœ์น™์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์•„ ์ด๋ฅผ ํ™œ์šฉํ•จ

โœ”๏ธ ์ตœ์ข… ํ’€์ด

import sys

n= int(sys.stdin.readline())
square = 2

while True:
    if n == 1 or n == 2:
        print(n)
        break
    if n > (2**square):
        square += 1
    else:
        base = 2**square
        print(base - 2*(base-n))
        break

๋Œ“๊ธ€