본문 바로가기
알고리즘 풀이/백준

[백준 1515] 수 이어 쓰기(python)

by char_lie 2023. 4. 3.
반응형

https://www.acmicpc.net/problem/1515

 

1515번: 수 이어 쓰기

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

www.acmicpc.net

수 이어 쓰기 문제

이어 써 나간 숫자의 일부를 가 빠졌을 때, 이 숫자로 만들 수 있는 최소 이어 붙인 수 N의 값을 구하는 문제

구현 + 브루트포스 문제로 하나씩 더해나가면서 대조해 가면서 찾는 문제이다.

⚙️내가 푼 정답 코드

import sys
S = sys.stdin.readline().strip()
n = 0
while len(S):
    n += 1 # 1칸씩 찾기
    num = str(n)
    while len(num) and len(S): #둘 다 아직 숫자가 있고
        if num[0] == S[0]: #만약 n의 앞자리가 S의 앞자리랑 같으면
            S = S[1:] # 앞자리 잘라내
        num = num[1:] # 앞자리 이동
print(n)

📌문제 접근 포인트

1. 받은 S가 몇까지 이어 붙인 수의 해당하는 값인지 찾아야 한다. 그렇다면 하나씩 늘려가면서 대조해 보자.
2. 1234567891011.. 이렇게 쭉 이어 붙여가는 수에서 찾으려면 n=1 일 때부터 시작해서 앞자리 하나씩 비교하면 된다.
3. n의 앞자리부터 S랑 같은지 대조해 보고, n의 앞자리랑 S가 같으면 그 숫자 S에서 빼버리는 식으로 해서 S가 최종적으로 빈칸이 될 때까지 반복해서 대조해 주면 어렵지 않게 찾을 수 있다.
반응형

댓글