본문 바로가기
코딩 테스트/구현

[백준 18311번] 왕복 문제풀이

by 서영선 2023. 8. 16.

 

 

< 문제 >

 

 

 

< 입출력 >

 

 

 

 

 

< 풀이 >

지나야 할 코스를 출력하는 것이므로 다음 코스를 더했을때 K 값보다 큰 경우 해당 코스를 출력하는 방식으로 생각했다.

K가 N번째 코스에 도착하기 전에 (N번 코스를 찍고 다시 돌아오기 전에) K값보다 커지는 경우와, N번째에서 다시 돌아와야 하는 두 경우로 생각했다.

결과 값은 배열 인덱스를 통해 계산한 했으므로 + 1 해주면 된다.

 

 

 

 

 

 

< 코드 > 

import sys

dist = 0
result = 1
N, K = map(int, input().split())
arr = list(map(int, input().split()))


for i in range(N):
    result = i
    dist += arr[i]
    if dist > K:
        break

if dist < K:
    for j in range(N):
        result = N - j - 1
        dist += arr[result]
        if dist > K:
            break


print(result + 1)

 

 

 

 

 

댓글