왕복 (18311) [실버 5]

Polla·2023년 4월 18일

백준BOJ

목록 보기
1/4
post-thumbnail

백준 18311 실버5 왕복 파이썬



🐹문제

왕복 달리기 선수는 N개의 이어진 일직선상의 코스들을 모두 지나 끝까지
도달한 뒤에, 다시 출발 지점으로 돌아와야 한다.
전체 코스들을 지나고 있는 상황에서 이동 거리가 K일 때, 현재 지나고 있는
코스의 번호를 출력하는 프로그램을 작성하시오.
단, 이동 거리가 K가 두 코스 사이에 위치한 경우에는 ‘지나야 할’ 코스의
번호를 출력한다.


🥳 해결


SOPT에 들어가고 고대하던 알고리즘 스터디에 들어온 후
처음으로 푼 문제.... 너무 바빠서 업로드가 없었는데 다시 달리기 시작!🔥


문제 자체는 쉬운데 푸는 방법은 다양하게 나왔던 것 같다.
나같은 경우는 식을 뽑고 for문 한번에 값을 돌리고 싶었다.

n,k = map(int,input().split())
m = list(map(int,input().split()))
m = m+m[::-1]

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

그래서 m+m[::-1]으로 왕복 맵을 만들어 줬다.
그 이후는 받아온 값 만큼 빼주다가 0보다 작아질 경우를 나눠서
두개의 공식을 만들어줬다.
이쥐....!


profile
트러블 슈팅 Blog => https://polla.palms.blog/home

0개의 댓글