- 문제 : https://www.acmicpc.net/problem/1515

 

문제 이해 

- 이해가 잘 되지 않아서 어떻게 풀어야할 지 몰랐던 문제다. 

- 1부터 N까지 띄어쓰기 없이 주욱 붙인다음 거기서 임의로 숫자를 제거한 결과값이 입력값으로 주어진다. 이 때 주어진 값으로 역으로 가능한 최소 N을 출력하면 되는 문제다. 

- 어떻게 풀어야 할지 감이 안 잡혀서 블로그를 찾아봤는데 1부터 숫자 하나씩 증가시키면서 숫자의 첫번째 값이 타겟 숫자의 첫번째와 일치하는지 비교하면서 진행하면 된다.

- 만약 첫번째 숫자들이 일치하면 두 숫자 모두 오른쪽으로 한 칸씩 더 이동하고, 일치하지 않는다면 후보 숫자만 오른쪽으로 이동시킨다. 

- 더이상 비교할 타겟 숫자가 없을 때 카운트하고 있던 숫자를 출력해주면 된다.

 

정답 풀이 

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

 

 

 

-참고한 블로그 : https://latte-is-horse.tistory.com/373

+ Recent posts