BOJ - 30236

주의·2023년 11월 29일
0

boj

목록 보기
15/214

백준 문제 링크
증가 수열

❓접근법

  1. b는 b1<b2<b3... 이므로 n개의 1부터 증가하는 리스트(temp)를 만들어준다.
  2. 위에서 만든 리스트(temp)와
    테스트 케이스의 리스트(lst)의 인덱스가 같을 때,
    테스트 케이스의 값과 같다면 temp 에서 1 증가시켜준다.
    예를 들어, lst = [1,2,3], temp = [1,4,5]이면
    temp = [2,4,5]로 만들어준다.
  3. temp 에서 반복문을 돌며 앞 뒤 값을 비교해서, 뒤의 값보다 앞의 값이 더 크면 뒤의 값에 (차이+1)만큼 더해준다
  4. 최솟값은 temp[-1]이다.

👌🏻코드


N = int(input())
for _ in range(N):
    n = int(input())
    temp = [i for i in range(1,n+1)]
    lst = list(map(int, input().split()))
    
    for i in range(len(temp)):
        if temp[i] == lst[i]:
            temp[i] += 1
    
        for j in range(i+1, len(temp)):
            if temp[j-1] >= temp[j]:
                temp[j] += (temp[j-1] - temp[j]) + 1
                
    print(temp[-1])
            
        

0개의 댓글