[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)
올콩
올콩
콩 심은 데 콩 난다
  • 올콩
    콩스토리
    올콩
  • 전체
    오늘
    어제
    • 분류 전체보기 (197) N
      • SSAFY (10)
      • Algorithm (115) N
        • 이론 (6)
        • 백준 (BOJ) (108) N
        • 프로그래머스 (1)
      • Trouble Shooting (9)
      • Frontend (6)
      • 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
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바