#15889

강채희·2021년 11월 14일
0
post-thumbnail

#15889

문제

풀이

첫시도

N=int(input())

dist=list(map(int,input().split()))
char_dist=[]
for i in range(1,N):
    char_dist.append(dist[i]-dist[i-1])
for_dist=list(map(int,input().split()))

def compare(A,B,N):
    for i in range(N):
        if A[i]<=B[i]:
            i=i+1
            if i==N:
                print("권병장님, 중대장님이 찾으십니다")
        else:
            print("엄마 나 전역 늦어질 것 같아")
            break

if N==1:
    print("권병장님, 중대장님이 찾으십니다")
else:
    compare(char_dist,for_dist,N-1)

보기의 예제로는 잘 출력이 되는데 실행을 돌려보니까 실패가 떴다.
첫 시도에 파악하지 못한게
던지는 사람이 바로 다음사람에게 던지지 않고 다다음 사람에게도 던질 수 있다는 점이다.

따라서 (던지는 사람의 위치 + 던질 수 있는 사거리) 를 생각해야하는 문제

최종

N=int(input())
dist=list(map(int,input().split()))

if N==1:
    print("권병장님, 중대장님이 찾으십니다")
    exit()
else:
    for_dist = list(map(int, input().split()))
    max_dist=0
    for i in range(N-1):
        max_dist=max(max_dist,dist[i]+for_dist[i])

        if max_dist>=dist[i+1]:
            continue
        else:
            print("엄마 나 전역 늦어질 것 같아")
            exit()

    print("권병장님, 중대장님이 찾으십니다")


ㅎ,,

참고

0개의 댓글