Queue로 이진수 만들기
문제
양의 정수 n이 주어질 때 1부터 n까지의 십진수를 이진수로 출력하라.
1. 내장함수 풀기
1 | def generate_binary(n): |
2. 큐를 사용하여 풀기
문제를 분석해보면, 2의 이진수는 10
이고 3의 이진수는 11
이다.
이는 1에다가 0
과 1
을 붙인 것이다.
4의 이진수는 100
이고 5의 이진수는 101
이다. 이는 2의 이진수 10
에다가 0
과 1
을 추가한 것이다.
앞서 사용한 숫자에 0
과 1
을 붙인 이진수가 나중에 사용된다.
큐를 하나 생성하고
1
을 삽입한다.n만큼 반복한다.
- 큐에서 꺼낸 값을 i에 저장
- i에
0
과1
을 붙인 이진수를 큐에 삽입 - i를 출력
1 | def generate_binary_queue(n): |