3460λ²: μ΄μ§μ
μμ μ μ nμ΄ μ£Όμ΄μ‘μ λ, μ΄λ₯Ό μ΄μ§μλ‘ λνλμ λ 1μ μμΉλ₯Ό λͺ¨λ μ°Ύλ νλ‘κ·Έλ¨μ μμ±νμμ€. μ΅νμ λΉνΈ(least significant bit, lsb)μ μμΉλ 0μ΄λ€.
www.acmicpc.net
βοΈ λ¬Έμ μμ½
μμ μ μ nμ΄ μ£Όμ΄μ‘μ λ, μ΄λ₯Ό μ΄μ§μλ‘ λνλμ λ 1μ μμΉ(μΈλ±μ€)λ₯Ό λͺ¨λ μΆλ ₯νλΌ.
πͺ 무μνκ² νκΈ°
λ¬Έμ λ₯Ό μ½μλ§μ μκ°λλλλ‘ νλ¦μ μ λ¦¬ν΄ λ³΄μλ€.
1. nμ 2λ‘ λλ λͺ«μ λ¬Έμμ΄μ λμ νλ€.
2. nμ λλ¨Έμ§λ‘ κ°±μ νλ©° λ§μ§λ§μ nμ λμ νλ€.
3. λ§λ€μ΄μ§ λ¬Έμμ΄μ μννλ©° 1μΈ μμμ μΈλ±μ€λ₯Ό μΆλ ₯νλ€.
def getBinary(n):
res = ''
while n >= 2:
res += str(n%2) # 맨 λ€μ λμ (κ²°κ³Όλ κ±°κΎΈλ‘)
n //= 2
res += str(n)
return res
TC = int(input())
for _ in range(TC):
N = int(input())
for i, x in enumerate(getBinary(N)):
if x == '1':
print(i, end=' ')
μκ° λ³΅μ‘λλ
π― μ΅μ ν
TC = int(input())
for _ in range(TC):
binary = bin(int(input()))[2:] # 0b μ μΈ
for i, x in enumerate(binary[::-1]): # κ±°κΎΈλ‘
if x == '1':
print(i, end=' ')
μκ° λ³΅μ‘λλ
π€ λ€λ₯Έ μ¬λμ μ½λλ₯Ό νꡬν΄λ³΄κΈ°
2μ§μμ κ°μ μμμ λ΄μΌ νκΈ° λλ¬Έμ [-i-1]λ₯Ό μ¬μ©νμ¬ μμμΌλ‘ ν λ¬Έμμ΄μ© 보기 μμνλ€.
TC = int(input())
for _ in range(TC):
binary = bin(int(input()))[2:]
for i in range(len(binary)):
if binary[-i-1] == '1':
print(i, end=' ')
π μ°Έκ³ μλ£
https://seungyong20.tistory.com/7

'π« ETC > Problem Solving' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| [νλ‘κ·Έλλ¨Έμ€] κ³Όμ μ§ννκΈ° (0) | 2023.09.27 |
|---|---|
| [νλ‘κ·Έλλ¨Έμ€] μμ (0) | 2023.09.25 |
| [νλ‘κ·Έλλ¨Έμ€] [1μ°¨] μ νλ²μ€ (0) | 2023.09.23 |
| [νλ‘κ·Έλλ¨Έμ€] νΌμ λκΈ°μ λ¬μΈ (0) | 2023.09.22 |
| [BOJ] 2501. μ½μ ꡬνκΈ° (0) | 2023.09.20 |