[SW11285] 다트 게임
✏️ 𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺/SW Expert Academy

[SW11285] 다트 게임

 

 SW Expert Academy- 다트 게임 

문제 링크

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXZuaLsqz9wDFAST 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

문제 입력

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