수 이어 쓰기 1515번 - 실버 3 (백준, 문자열)

2023. 1. 19. 12:48코딩 테스트 준비

728x90
반응형

이게 왜 실버3인지 의문이 든다.. 진자 문제해결 능력이라는 건 발상의 전환이 필요한 거 같다. 하지만 절망하지 말자! 

아무리 느려도 하다보면 는다. 뭐든 그렇다. 계속 공부해보자!

nums = input()
i = 0
while True:
    i += 1
    num = str(i)
    while len(num) > 0 and len(nums) > 0:
        if num[0] == nums[0]:
            nums = nums[1:]
        num = num[1:]
    if nums == '':
        print(i)
        break

1부터 증가하는 자연수를 i라고 하고, 입력 받은 수를 s라고 했을 때 s의 숫자들이 하나씩 나올 때까지 i를 하나씩 증가하면서 찾아야 한다.

 

만약 현재 i가 100이고, s가 23인 상황을 생각해보자.

우선 2를 찾아야 한다. 현재 i는 100인데 2가 없기 때문에 101로 증가한다. 101에도 2가 없기 때문에 102로 증가한다.

1...0.....2 를 찾았다. s에서도 2를 제거해 3으로 만든다.

i를 또 103으로 만들어 탐색한다. 1....0....3 을 찾았다. s에서도 3을 제거하면 s는 더 이상 찾을 숫자가 없게 된다.

찾는 숫자를 모두 찾았다. 그리고 i가 103일 때 모두 찾았기 때문에 103을 출력하면 된다.

 

 

728x90
반응형