๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ๋ฐœ/๐™‚๐™ค๐™ค๐™ง๐™ข ๐™‡๐™€๐™‘๐™€๐™‡

[๊ตฌ๋ฆ„๋ ˆ๋ฒจ] 'T์„ธํฌ' ํŒŒ์ด์ฌ ํ’€์ด

by beomcoder 2023. 6. 21.
728x90
๋ฐ˜์‘ํ˜•
https://level.goorm.io/exam/49085/t%EC%84%B8%ED%8F%AC/quiz/1
 

๊ตฌ๋ฆ„LEVEL

๊ตฌ๋ฆ„LEVEL ๋ฌธ์ œ๋ฅผ ํ’€์ดํ•˜๊ณ  ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์„ ๋ณด์™„ํ•˜๋ฉฐ ์‹ค๋ ฅ์„ ํ‚ค์›Œ๋ณด์„ธ์š”. ๊ตฌ๋ฆ„LEVEL์€ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ์—์„œ ๊ฐ€์žฅ ๋†’์€ ๋น„์ค‘์„ ์ฐจ์ง€ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ์ œ์ž‘ํ•˜๊ณ  ํ’€์ดํ•  ์ˆ˜ ์žˆ๋Š” ์˜จ๋ผ์ธ ์ €์ง€ ์„œ๋น„์Šค์ž…

level.goorm.io

 

n = int(input())
answer, i = [], 0

while True:
	if n == 2**i:
		answer.append(i)
		print(len(answer))
		print(*answer[::-1])
		break
	elif n < 2**i:
		n -= 2**(i-1)
		answer.append(i-1)
		i = 0
	else:
		i += 1

"""
n์„ 2์˜ i์ œ๊ณฑ์œผ๋กœ ๊ณ„์†ํ•ด์„œ ๋นผ๋ฉด์„œ ๊ฐ’์„ ์ฐพ์•„๋‚˜๊ฐ€์•ผํ•œ๋‹ค.
๋งŒ์•ฝ 2์˜ i์ œ๊ณฑ์ด n๊ณผ ๊ฐ™๋‹ค๋ฉด ์„ธํฌ๋ฅผ ๋” ๋Š˜๋ฆดํ•„์š”์—†์ด ๊ฑฐ๊ธฐ์„œ ๋๋‚ด๋ฉด ๋œ๋‹ค.

์ตœ์†Œ๊ฐ’์œผ๋กœ ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— 2์˜ i์ œ๊ณฑ์ด n๊ณผ ๊ฐ€์žฅ ๊ทผ์ ‘ํ•œ ์ž‘์€์ˆ˜์—ฌ์•ผํ•œ๋‹ค.
๊ทธ๋ž˜์„œ 2์˜ i์ œ๊ณฑ์ด n๋ณด๋‹ค ์ปค์กŒ์„๋•Œ i-1์ด ๊ฐ€์žฅ ๊ทผ์ ‘ํ•œ ์ˆ˜์ด๋‹ค.
"""
728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€