코딩테스트/백준 문제
[파이썬] 백준 3034번(브론즈3) : 앵그리 창영
김뚱입니다
2025. 5. 19. 04:34
[문제]
문제 : 백준 3034번_앵그리 창영
[코드]
import sys, math
input = sys.stdin.readline
N, W, H = map(int, input().split())
# 성냥 박스의 대각선 길이를 생각해야함
diagonal = math.sqrt(W**2 + H**2)
for _ in range(N):
match = int(input().strip())
# 성냥 박스의 대각선 길이보다 성냥이 짧으면 문제가 없음
if diagonal >= match:
print("DA")
else:
print("NE")
피타고라스 정리로 성냥 박스의 대각선 길이를 생각해야 했다.
[리팩터링 코드]
import sys
input = sys.stdin.readline
N, W, H = map(int, input().split())
max_length_squared = W * W + H * H
for _ in range(N):
match = int(input())
if match * match <= max_length_squared:
print("DA")
else:
print("NE")
이렇게 하면 math 라이브러리 없이도 풀 수 있다.
sqrt() 계산을 생략해서 더 빠르고 제곱으로만 비교한다.