Python/백준 (BOJ)

[BOJ][B2]다트 - 2756

ㅋㅋ! 2025. 9. 8. 13:00

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

문제 전문은 링크 참조

문제가공

  1. x ,y 값으로 이루어진 숫자쌍을 6쌍 입렫 받는다.
  2. 0,0에서 부터 x,y 까지의 거리를 구한다. ( 피타고라스의 정리  a^2 + b^2 = c^2 )
  3. 거리에 포함되는 점수를 계산 후, 승자를 출력한다.

코드작성

def getDistance(x,y):
    return ((x**2 if x!= 0 else 0) + (y**2 if y != 0 else 0))**0.5

def getScore(distance):
    if 0<=distance<=3: return 100
    elif 3<distance<=6: return 80
    elif 6<distance<=9: return 60
    elif 9<distance<=12: return 40
    elif 12<distance<=15: return 20
    else: return 0
        

for _ in range(int(input())):
    scores = []
    arr = list(map(float,input().split()))
    for idx in range(len(arr)//2):
        x = arr[idx*2]
        y = arr[idx*2+1]
        scores.append(getScore(getDistance(abs(x),abs(y))))
    p1 = sum(scores[:3])
    p2 = sum(scores[3:])
    
    print(f'SCORE: {p1} to {p2},', end = ' ')
    if p1==p2 : print("TIE.")
    elif p1>p2 : print('PLAYER 1 WINS.')
    else : print('PLAYER 2 WINS.')
        

 

'Python > 백준 (BOJ)' 카테고리의 다른 글

[BOJ][B2]유학 금지 - 2789  (0) 2025.09.10
[BOJ][B2]아름다운 수 - 2774  (0) 2025.09.09
[BOJ][B2]수 정렬하기 - 2750  (0) 2025.09.07
[BOJ][B2]피보나치 수 - 2747  (0) 2025.09.06
[BOJ][B2]오타맨 고창영 - 2711  (0) 2025.09.05