백준(Python) 1515: 수 이어쓰기



문제

백준(Python) 1515: 수 이어쓰기


백준 1515 수 이어쓰기 (링크)



풀이

나는 먼저 수를 입력받은 후 리스트로 변환하였다.

그리고 while 무한 루프를 돌며, 리스트의 첫번째 항목, 즉 맨 앞의 수가 n이라는 문자열 안에 있는지를 확인하였다.

예를 들어, 리스트에 [‘3′,’4′,’5′,’1’] 이렇게 남아있고, n은 34만큼 증가했다고 생각해보자. n을 문자열 ’34’로 바꾸고 for 문을 돌리면서, 3과 일치하면 pop(0)을 써서 ‘3’을 없애 버리고, 또 다시 for 문을 돌면서 ‘4’도 없애버렸다.

다만, for문을 돌면서 중간에 lst가 다 비어버릴 수도 있기 때문에 break도 추가했다.

# 1515

# 수 입력 받기 (문자열)
lst = list(input())



# lst가 다 빌 때까지 루프
n=0
while lst :
    n += 1
    # 숫자를 문자열로 변환하고, for 문을 돌림
    for i in str(n):
        #만약 중간에 lst가 다 비면 break 해야함.
        if not lst:
            break
        if lst[0] == i:
            lst.pop(0)

# 출력
print(n)       

CATEGORIES:

Tags:

No Responses

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다