백준 BAEKJOON 34115번 먼 카드 [PYTHON/파이썬]

문제 출처 (BRONZE Ⅲ)

https://www.acmicpc.net/problem/34115

 

 

 

 

 

 

 

풀이

1부터 N까지의 카드가 각각 두 장씩 있다.

index 함수를 활용하면 가장 앞에 있는 인덱스가 출력이 되니

첫 번째 카드의 인덱스를 firstNum 변수에 저장한 뒤, 0부터 해당 인덱스까지 빈 숫자로 채워두는 작업을 했다.

(나 같은 경우는 숫자 0으로 채웠다.)

그 상태에서 두 번째 카드의 인덱스를 lastNum에 저장했다.

마지막으로 두 카드의 인덱스의 차이에 -1을 하면 두 카드 사이에 있는 카드의 개수 k를 구할 수가 있다.

문제에서는 k 사이 카드 수 중 가장 큰 값을 요구하니 max를 활용했다.

 

 

 

 

 

 

 

코드

N = int(input())
X = list(map(int, input().split()))
max_k = 0

for i in range(1, N + 1):
    firstNum = X.index(i)
    except_X = [0] * (firstNum + 1) + X[firstNum + 1 :]
    lastNum = except_X.index(i)

    max_k = max(max_k, abs(firstNum - lastNum) - 1)

print(max_k)