티스토리 뷰

문제 링크

 

1004번: 어린 왕자

입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 첫째 줄에 출발점 (x1, y1)과 도착점 (x2, y2)이 주어진다. 두 번째 줄에는 행성계의 개수 n이 주

www.acmicpc.net

 

문제 풀이

t = int(input())

for _ in range(t):
    x1, y1, x2, y2 = map(int, input().split())
    n = int(input())
    cnt = 0

    for _ in range(n):
        cx, cy, r = map(int, input().split())
        r1 = ((x1 - cx) ** 2 + (y1 - cy) ** 2) ** 0.5
        r2 = ((x2 - cx) ** 2 + (y2 - cy) ** 2) ** 0.5
        if (r1 < r and r2 > r) or (r1 > r and r2 < r):
            cnt += 1
    print(cnt)

1002 입출력 예시

*key point: 출발점과 도착점 각각의 행성계의 중심과의 거리와 반지름을 비교하여 출발점과 도착점 중 하나만 행성계 안에 속할 때 진입/이탈 횟수(cnt 변수)에 1을 더해준다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함