본문 바로가기
Algorithm/구현

[Python3] 백준 1004번 어린 왕자

by HANNI하니 2023. 4. 2.

사용 언어 - Python3

문제 - 어린 왕자

 

1004번: 어린 왕자

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

www.acmicpc.net

 

 

정답

출발/도착점-행성계 단순 계산 문제 (정답 맞춘 여부 X)

1. "제곱"을 통해 반지름 크기 비교

행성계 반지름 vs 출발점, 행성계 x 반지름

행성계 반지름 vs 도착점, 행성계 y 반지름

행성계 반지름보다 안에 있으면 카운트+=1

T=int(input())
for _ in range(T):
    x1, y1, x2, y2 = list(map(int,input().split())) #출발점, 도착점
    n = int(input()) # 행성계 개수
    cnt = 0
    for _ in range(n):
        cx, cy, cr = map(int,input().split())
        d1 = (x1-cx)**2 + (y1-cy)**2
        d2 = (x2-cx)**2 + (y2-cy)**2
        pow_cr = cr**2
        if pow_cr > d1 and pow_cr > d2:
            pass
        elif pow_cr > d1:
            cnt += 1
        elif pow_cr > d2:
            cnt += 1
    print(cnt)

 

 

 


레퍼런스

  • 정답 참고
 

백준 1004번 파이썬

해당 문제의 핵심은 '그림에 속지 말자'이다.그림을 처음 봤을 때 너무 많은 방법 수가 나오기 때문에 문제에 대해 제대로 이해하지 못했다.하지만 두 번째 입력 예제의 경우 그림을 그리기엔 너

velog.io

  • 정답 깃허브
 

GitHub - yyeongeun/codingtest: 코딩테스트 공부

코딩테스트 공부. Contribute to yyeongeun/codingtest development by creating an account on GitHub.

github.com

 

댓글