(파이썬) Baekjoon Online Judge 백준 1004 어린왕자
문제
풀이
시작점을 s
, 도착점을 e
라고 했을 때,
s
와e
모두 원 안에 있을 경우s
와e
중 하나만 원 안에 있을 경우
를 고려해 주면 된다.
1
의 경우 행성계 진입/이탈횟수는 0
2
의 경우 행성계 진입/이탈횟수는 1 이다.
원내부에 있는지 여부는, 점과 점 사이의 거리공식을 이용하여 거리 < 반지름
이면 내부, 거리 > 반지름
이면 외부이다.
코드
파이썬 (python)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import sys def d(sx,sy,ex,ey): d = pow(pow((ex-sx),2) + pow((ey-sy),2),0.5) return d for _ in range(int(sys.stdin.readline())): se = list(map(int,sys.stdin.readline().split())) start = [se[0],se[1]] end = [se[2],se[3]] count=0 for _ in range(int(sys.stdin.readline())): cir = list(map(int,sys.stdin.readline().split())) if (d(start[0],start[1],cir[0],cir[1])-cir[2])*(d(end[0],end[1],cir[0],cir[1])-cir[2])<0: # 두점 중 하나만 내부 count +=1 else: count +=0 print(count) |