728x90
반응형
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
문제 해결
- 하키장을 3개 구간으로 나눌 수 있다. 가장 가운데 직사각형, 왼쪽 반원, 오른쪽 반원
- 처음에 y좌표를 통해 경기장 안에 들어올 수 없는 사람을 걸러낸다.
- 그리고 x좌표를 통해 직사각형 안에 있는 사람, 왼쪽 반원에 있는 사람, 오른쪽 반원에 있는 사람을 골라낸다.
CODE
import sys
input = sys.stdin.readline
def solve(w,h,x,y,p):
result = 0
for _ in range(p):
r, c = map(int, input().split())
if c> y+h or c< y: continue # 무조건 하키장 밖에 있는사람
elif x<= r <=w+x:
result += 1
elif r<x:
dis = (x-r)**2+(y+h/2-c)**2
if dis<= (h/2)**2:
result += 1
elif r> x + w:
dis = (x+w-r)**2 + (y+h/2-c)**2
if dis<=(h/2)**2:
result += 1
return result
if __name__== '__main__':
w, h, x, y, p = map(int, input().split())
answer = solve(w,h,x,y,p)
print(answer)
728x90
반응형
'알고리즘 > [python] 백준 BOJ' 카테고리의 다른 글
[python] 백준 30823 건공문자열 (3) | 2023.12.03 |
---|---|
[python] 백준 2234 성곽 (2) | 2023.12.03 |
[python] 백준 7579 앱 (0) | 2023.11.26 |
[python] 백준 11559 Puyo Puyo (1) | 2023.11.23 |
[python] 백준 1726 로봇 (1) | 2023.11.22 |
댓글