def solution(decimal):
stack = []
while decimal > 0:
remainder = decimal % 2
stack.append(remainder)
decimal = decimal // 2
binary = ""
while len(stack) > 0:
binary += str(stack.pop())
return binary
13을 2로 나누면서 나눈 나머지를 순서대로 저장한다.
이과정을 0이 될때까지 반복하며 몫이 0이 되면 순서대로 읽으면 이진수변환이 된다.
스택에 저장할 데이터가 무엇인지 생각해보면
스택에 하나씩 나머지를 쌓고, 하나씩 꺼내면 답이 나온다.
+ 이문제에서 pop말고 문자열에 계속해서 문자를 더할때는 join 메서드가 효율적이다.
'TIL-algorithm' 카테고리의 다른 글
스택 - 괄호 회전하기 (1) | 2024.01.30 |
---|