SW Expert Academy- 다트 게임
문제 링크
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXZuaLsqz9wDFAST
문제 입력
2
5
80 -14
117 12
98 -69
-86 21
-121 99
3
10 10
1 2
200 200
#1 25
#2 20
문제 풀이
import sys
import math
sys.stdin = open("input.txt", 'rt')
T = int(input())
ans = []
for t in range(T):
N = int(input())
tot = 0 # 라운드 마다의 총점
for n in range(N):
x, y = map(int, input().split())
r = math.ceil(math.sqrt(x * x + y * y) / 20)
if r <= 0:
tot += 10
elif r <= 11:
tot += 11 - r
ans.append(f"#{t + 1} {tot}")
for x in ans:
print(x)
이상하게도 x**2 이런식으로 하면 시간초과가 납니다. 따라서 x*x 이런식으로 해줘야 합니다.
만약 반지름이 0 보다 작은 것이 있다면 10 점 입니다. 200 이상은 0점이므로 굳이 tot에 더해주지 않아도 됩니다.
그 이외의 값들은 11 - r 해서 p 값을 더해주면 됩니다.
그리고 바로 print 로 출력하면 시간초과가 납니다. 따라서 배열로 한 데 모아서 출력해줘야 합니다.
# SW Expert 다트게임 python 파이썬
728x90
'✏️ 𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺 > SW Expert Academy' 카테고리의 다른 글
[SW14361] 숫자가 같은 배수 (0) | 2022.05.29 |
---|---|
[SW13732] 정사각형 판정 (0) | 2022.05.29 |
[SW11315] 오목 판정 (0) | 2022.05.23 |
[SW11387] 몬스터 사냥 (0) | 2022.05.23 |
[SW11445] 무한 사전 (0) | 2022.05.23 |