[백준/파이썬] 13118번 뉴턴과 사과 풀이

업데이트:



문제 정보


풀이

문제


사과가 떨어지기를 기다리는 사람들.


그림과 같이 네 명의 사람이 사과가 떨어지기를 기다리고 있다. 모든 사람은 x축 위의 한 점에 가만히 서 있으며, 여러 사람이 같은 점에 서 있는 경우는 없다. i번 (1 ≤ i ≤ 4) 사람은 점 (pi, 0) 위에 있다고 하자. 거대한 좌표평면에 비해 사람은 작은 존재이므로, 편의상 각 사람의 크기는 무시하자.


x축 위에서 기다리는 사람들.


사과는 좌표평면 위의 한 점 (x, y)를 중심으로 하는 반지름이 r인 원이며, 현재 공중에 가만히 떠 있으므로 모든 점이 x축의 위쪽(즉 y > 0인 영역)에 있다.


x축 위에 떠 있는 사과.


사과에는 −y축 방향의 중력만이 작용한다. 중력의 크기는 일정하므로, 사과는 지표면(x축)을 향해 등가속도 운동을 하다가, x축과 접하게 되는 순간 멈추게 된다고 한다.


x축을 향해 떨어지는 사과.


사람들은 사과가 떨어지기를 기다리면서도, 자신과는 충돌하지 않기를 원하기에, 과연 누가 사과와 충돌하게 될 지를 알고 싶다고 한다. 사람들의 위치와 사과의 위치 및 반지름이 주어졌을 때, 사과와 충돌하는 사람이 있는지, 있다면 누구인지를 구하는 프로그램을 작성하라.

  • 자세한 문제 및 입출력 예제는 상단의 문제 출처(백준 홈페이지)를 참조해주세요

코드

people = list(map(int, input().split()))
x, y, r = map(int, input().split())

try: print(people.index(x) + 1)
except: print(0)

설명

문제에 주어진 정보에 비해 정말정말 간단한 문제입니다.

우선, 사람의 크기가 무시되므로 사과의 반지름은 전혀 고려할 필요가 없습니다.

또한, 충돌만 생각하면 되므로 사과의 y좌표도 전혀 필요없죠.

사과는 원이므로, 사과가 x축과 맞닿는 부분은 오직 한 점입니다. 사과와 같은 x좌표를 공유하는 사람이 있는지만 파악해서, 있다면 몇번째인지, 없다면 0을 출력하면 됩니다.



댓글남기기