BOJ - 1515

주의·2024년 1월 14일
0

boj

목록 보기
69/214

백준 문제 링크
수 이어 쓰기

❓접근법

  1. 문제의 예제 2번의 경우는 다음과 같다.

12341567891011121314151617181920

  1. 비교할 숫자 i를 1부터 1씩 늘려가며 N의 첫번째 숫자와 맞는지 비교해볼 것이다.
  2. 만약 i = 1, num = str(i), N = 1234일 때
    num[0]와 N[0]가 같으므로 N = N[1:]로 바꾸고
    num = num[1:]로 바꾼다.
    여기서 num = num[1:] 로 바꾸는 이유는 아래와 같다.
  • 만약 num = 112 라면
    num[0] != N[0]일 때, num = num[1:]로 바꾸어 num = 12로 만든 뒤에
    다시 while문 안에서 N[0]와 같은지 검사하는 것임.
  1. 마지막으로 N의 숫자가 다 없어졌을 때 i를 출력하면 끝!

👌🏻코드

N = input()

i = 0

while len(N):
    i += 1
    num = str(i)
    
    while len(num) > 0 and len(N) > 0:
        if num[0] == N[0]:
            N = N[1:]
        num = num[1:] 
# num이 110일 때, num[0] != N[0]이면, num = 10으로 바뀌고 다시 while문 적용, 이 때 num[0] != N[0]이므로 다시 while문 적용
print(i)

어려웠다 ㅠㅠ

0개의 댓글