문제) 10진수 decimal을 입력받아 2진수로 변환하고 이를 문자열로 반환하는 함수를 구현하시오.
| decimal | 반환값 |
| 10 | '1010' |
| 27 | '11011' |
| 12345 | '11000000111001' |

# 10진수를 2진수로 변환하기
def solution(decimal):
stack = [] # 나머지를 담아둘 스택 (뒤집기 용도)
while decimal > 0: # decimal이 0이 될 때까지 반복
remainder = decimal % 2 # 2로 나눈 나머지 (0 또는 1)
stack.append(str(remainder)) # 나머지를 문자열로 바꿔서 스택에 push
decimal //= 2 # decimal을 2로 나눈 몫으로 갱신
binary = "" # 최종 이진수 결과 문자열
while stack: # 스택이 빌 때까지 pop
binary += stack.pop() # pop하면 거꾸로 꺼내짐 → 올바른 2진수 순서
return binary # 변환된 2진수 문자열 반환
# 테스트
print(solution(10), solution(27), solution(12345))
# 10 -> 1010
# 27 -> 11011
# 12345 -> 11000000111001
'컴퓨터 알고리즘' 카테고리의 다른 글
| ChatGPT 이미지 오류(+ 이진트리) (0) | 2025.10.03 |
|---|---|
| 덱 Deque을 큐처럼 활용하기(+ 파이썬) (0) | 2025.09.28 |
| 큐 Queue 정리(+ 큐 Queue로 풀 수 있는 프로그래밍 문제, 파이썬) (0) | 2025.09.28 |
| 괄호 짝 맞추기(+ 스택으로 풀 수 있는 프로그래밍 문제, 파이썬) (1) | 2025.09.28 |
| 스택 정리(+ 스택으로 풀 수 있는 프로그래밍 문제, 파이썬) (0) | 2025.09.28 |