Skip to content
CatBus
Go back

[BOJ] 배수 찾기 - 4994 (G3)

시간 제한메모리 제한
2 초128 MB

문제

0과 1로만 이루어진 N의 배수를 찾는 프로그램을 작성하시오.

풀이

BFS를 사용하여 0과 1로 이루어진 수를 만들어가며 N의 배수를 찾는다.

코드

from collections import deque

def bfs(n):
    q = deque([1])
    while q:
        cur = q.popleft()
        for n_num in (cur * 10 + 0, cur * 10 + 1):
            if len(str(n_num)) > 100:
                continue
            
            if n_num % n == 0:
                return n_num
            q.append(n_num)

while True:
    n = int(input())
    if n == 0:
        break

    print(bfs(n))

시간 복잡도

O(2^100) (worst case, but pruned by modulo check)


Share this post:

비슷한 글

4994이 글

본문을 Xenova/multilingual-e5-small 로 임베딩하고, 그 벡터를 PCA 로 32축에 눌러 왼쪽 막대로 그렸습니다. 비슷한 글은 지문도 닮습니다 — 위아래를 견줘 보세요. 계산은 빌드 때 끝나고 벡터는 브라우저로 오지 않습니다.

Previous Post
[BOJ] 카드 바꾸기 - 25401 (G5)
Next Post
[BOJ] 전쟁 - 전투 - 1303 (S1)