알고리즘

[백준, 파이썬, 18311번] 왕복

hminor 2023. 9. 18. 09:56

 

풀이

 

  • 범위를 슬라이싱을 통해 역순까지 추가해준 다음 풀이
  • 이후 해당 범위를 위해 start에 누적합을 적용
  • 해당 범위안에 k의 값이 적용된다면 
  • i가 n-1보다 클 경우엔 2*n-i로 
  • 작더가 같다면 i+1을 출력하여 해결

 

import sys
input = sys.stdin.readline

n,k = map(int,input().split())
li = list(map(int,input().rstrip('\n').split()))
li = li+ li[::-1]
start = 0

for i in range(2*n):
    if start<=k<start+li[i]:
        if i>n-1: print(2*n-i)
        else: print(i+1)
        break
    start += li[i]