< 문제 >
https://www.acmicpc.net/problem/28061
< 풀이 >
코드 1
N = int(input())
arr = list(map(int,input().split()))
home = len(arr)+1
j = 1
for i in range(N):
diff = home - j
arr[i] -= diff
j+=1
print(max(arr))
변수 diff는 거리 차에 따라 빠져나오는 레몬 개수를 의미한다. 배열 arr의 원소 값은 해당 위치( ex) arr [0] = X1 )의 레몬 개수를 의미하며, diff 값을 빼줌으로써 해당 위치에서 레몬을 땄을 시 집에 가져갈 수 있는 개수가 arr [i]에 담기게 된다.
코드 2
N = int(input())
arr = list(map(int,input().split()))
for i,lemon in enumerate(arr):
arr[i] = lemon -len(arr)+i
print(max(arr))
파이썬 내장함수 enumerate()를 활용한 코드이다.
< 참고 >
https://www.daleseo.com/python-enumerate/
파이썬 다운 코드는 무엇일까..? 코드를 구현할 때마다 항상 고민하게 된다.