티스토리 뷰

PS/BOJ Python

1358번 - 하키

zpqmdh 2023. 3. 31. 20:28

https://www.acmicpc.net/problem/1358

 

1358번: 하키

첫째 줄에 수 W H X Y P가 주어진다. P는 선수의 수이다. W와 H는 100보다 작거나 같은 자연수이고, H는 짝수이다. X와 Y는 절댓값이 100보다 작거나 같은 정수이다. P는 최대 50인 자연수이다. 둘째 줄부

www.acmicpc.net

이 문제는 두 점 사이의 거리를 구할 수 있느냐 없느냐를 묻는 간단한 수학 문제이다.

나는 세 가지의 경우로 나누어 조건문을 작성하였다.

1. 플레이어가 사각형 내부에 있느냐

2. 플레이어가 왼쪽 원(R1) 내부에 있느냐

3. 플레이어가 오른쪽 원(R2) 내부에 있느냐

물론 중복되는 경우도 있지만 생각한 방법은 위와 같았다!

# 하키
import sys
input = sys.stdin.readline

W, H, X, Y, P = map(int, input().split())
R1 = [X, Y+H//2]
R2 = [X+W, Y+H//2]

answer = 0
for i in range(P):
    player = list(map(int, input().split()))
    if X<=player[0]<=X+W and Y<=player[1]<=Y+H:
        answer += 1
    elif (player[0]-R1[0])**2 + (player[1]-R1[1])**2 <= (H//2)**2:
        answer += 1
    elif (player[0]-R2[0])**2 + (player[1]-R2[1])**2 <= (H//2)**2:
        answer += 1
print(answer)

'PS > BOJ Python' 카테고리의 다른 글

1759번 - 암호 만들기  (0) 2023.04.02
2839번 - 설탕 배달  (0) 2023.04.01
1015번 - 수열 정렬  (0) 2023.03.30
10815번 - 숫자 카드  (0) 2023.03.29
17478번 - 재귀함수가 뭔가요?  (0) 2023.03.28
공지사항
최근에 올라온 글
최근에 달린 댓글
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
글 보관함