티스토리 뷰
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
링크
TAG
- 조합
- 수학
- 10845
- 10971
- 덱
- 10815
- dp
- 싸피
- 백준
- 자료구조
- heapq
- 1759
- 러스트
- 백트래킹
- 딕셔너리
- 빌림
- 1182
- 1715
- 17478
- 삼성청년소프트웨어아카데미
- 1358
- 스택
- 브루트포스
- 1764
- 큐
- 프로그래머스
- 파이썬
- 2805
- 11051
- 10816
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함