[Python] 백준/BOJ 1515번: 수 이어 쓰기 (Silver 3)

2025. 7. 19. 16:29·Algorithm/백준 (BOJ)
반응형

💻 Problem

문제 보러 가기

 

세준이는 1부터 N까지 모든 수를 차례대로 공백 없이 한 줄에 다 썼다. 그러고 나서, 세준이가 저녁을 먹으러 나간 사이에 다솜이는 세준이가 쓴 수에서 마음에 드는 몇 개의 숫자를 지웠다.

세준이는 저녁을 먹으러 갔다 와서, 자기가 쓴 수의 일부가 지워져있는 모습을 보고 충격받았다.

세준이는 수를 방금 전과 똑같이 쓰려고 한다. 하지만, N이 기억이 나지 않는다.

남은 수를 이어 붙인 수가 주어질 때, N의 최솟값을 구하는 프로그램을 작성하시오. 아무것도 지우지 않을 수도 있다.)

 

💡 Approach

1부터 숫자를 하나씩 늘리면서 입력값과 비교한다.

그 숫자 역할이 n이고 입력값은 num이다.

n을 하나씩 늘리면서 num의 한 글자씩 비교한다.

n에 들어가는 숫자에 num[i]가 있으면 i를 증가시킨다.

 

num = '231112'인 예시는 아래와 같다.

n num[i] i
1 2 0
2 2 0 → 1
3 3 1 → 2
4 1 2
5 1 2
6 1 2
7 1 2
8 1 2
9 1 2
10 1 2 → 3
11 1 3 → 4 → 5
12 2 5 → 6

11의 경우 n[0] == num[3]과 같고, n[1] == num[4]와 같다.

그래서 n이 11일 때는 i가 두 번 증가한다.

 

✏️ Solution

import sys
from collections import deque
input = sys.stdin.readline

num = input().rstrip()

n, i = 1, 0
while True:
    queue = deque(list(str(n)))

    while queue and i < len(num):
        x = queue.popleft()

        if num[i] == x:
            i += 1
    
    if i == len(num):
        break

    n += 1

print(n)

11 같은 두 자리수 이상의 숫자를 처리하기 위해 큐로 한 자리씩 검사하는 코드이다.

 

import sys
input = sys.stdin.readline

num = input().rstrip()
n, i = 1, 0
while True:
    for s in str(n):
        if num[i] == s:
            i += 1
            if i == len(num):
                print(n)
                exit()
    n += 1

큐를 쓰지 않고 반복문으로 풀어도 가능하다.

 

반응형

'Algorithm > 백준 (BOJ)' 카테고리의 다른 글

[Python] 백준/BOJ 1270번: 전쟁 - 땅따먹기 (Silver 3)  (0) 2025.07.28
[Python] 백준/BOJ 1715번: 카드 정렬하기 (Gold 4)  (0) 2025.07.24
[Python] 백준/BOJ 31395번: 정렬된 연속한 부분수열의 개수 (Silver 4)  (0) 2025.07.17
[Python] 백준/BOJ 9095번: 1, 2, 3 더하기 (Silver 3)  (0) 2025.07.16
'Algorithm/백준 (BOJ)' 카테고리의 다른 글
  • [Python] 백준/BOJ 1270번: 전쟁 - 땅따먹기 (Silver 3)
  • [Python] 백준/BOJ 1715번: 카드 정렬하기 (Gold 4)
  • [Python] 백준/BOJ 31395번: 정렬된 연속한 부분수열의 개수 (Silver 4)
  • [Python] 백준/BOJ 9095번: 1, 2, 3 더하기 (Silver 3)
올콩
올콩
콩 심은 데 콩 난다
  • 올콩
    콩스토리
    올콩
  • 전체
    오늘
    어제
    • 분류 전체보기 (198) N
      • SSAFY (10)
      • Algorithm (115)
        • 이론 (6)
        • 백준 (BOJ) (108)
        • 프로그래머스 (1)
      • Trouble Shooting (9)
      • Frontend (7) N
      • React (17)
      • Next.js (4)
      • Vue (4)
      • Node.js (2)
      • HTML (9)
      • DevOps (4)
        • Git (4)
      • Language (9)
        • JavaScript (0)
        • Java (9)
      • Embedded (1)
      • CS (5)
        • Network (1)
        • Blockchain (4)
      • 자격증 (2)
  • 블로그 메뉴

    • GitHub
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    html5
    백트래킹
    SSAFYcial
    파이썬
    알고리즘
    중복순열
    Error
    구현
    중복조합
    dfs
    브루트포스
    블록체인
    티스토리챌린지
    Next.js
    우선순위큐
    백준
    Java
    Heap
    순열
    싸피
    힙
    재귀
    bfs
    SSAFY
    DP
    수학
    강의
    Algorithm
    오블완
    React
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
올콩
[Python] 백준/BOJ 1515번: 수 이어 쓰기 (Silver 3)
상단으로

티스토리툴바