3809.화섭이의 정수 나열

풀이

T = int(input())

answer = []
for tc in range(1, T + 1):

    N = int(input())
    numbers = ''
    i = 0
    while i < N:
        temp = input().split()
        for char in temp:
            numbers += char
            i += 1

    number_combination = [0] * 10000 # 1000자리 숫자로는 조건에 맞는 수가 1000언저리에서 나올 것이기 떄문에 적당한 크기로 숫자조합을 카운트할 배열 생성
    for i in range(N):
        if i + 3 < N:
            number_combination[int(numbers[i:i+4])] = 1
        if i + 2 < N:
            number_combination[int(numbers[i:i+3])] = 1
        if i + 1 < N:
            number_combination[int(numbers[i:i+2])] = 1
        number_combination[int(numbers[i])] = 1

    result = 0
    i = 0
    while True:
        if number_combination[i] == 0:
            result = i
            break
        i += 1
    
    answer.append(result)

for tc in range(1, T+1):
    print(f'#{tc} {answer[tc-1]}')