Notice
Recent Posts
Recent Comments
Link
jyamethyst21 님의 블로그
백준 3034번 - '앵그리 창영' (PYTHON 풀이) 본문
문제:

해당 문제는 박스에 성냥을 넣었을 때 들어가는지 아닌지를 하나씩 검사해서 여부를 출력하는 문제이다.
필자는 처음 해당 문제를 보았을 때, 면적을 구해서 성냥이 들어가는지 아닌지만 확인하면 되는줄 알았다. 즉 1차원의 직사각형 모양에 성냥을 던졌을 때 들어가는냐를 보는줄 알았다.
그러나 그것이 아니라 박스가 입체로 되어있다고 생각하고 거기에 성냥을 넣었을 때 잘 들어가는지를 보아야하는 문제였다.
들어가면 DA를, 안 들어가면 NE를 출력하면 된다.
풀이:
import math
N, W, H = map(int,input().split())
for i in range(N):
leng = int(input())
if leng <= math.sqrt((W**2) + (H**2)):
print("DA")
else:
print("NE")
파이썬의 math 라이브러리를 import하면 루트를 씌우는 함수인 sqrt를 활용할 수 있다.
앞서 말한 것처럼 사각형 내에 성냥이 들어가는지를 보려면, 대각선의 길이를 활용해야 한다.

즉, 박스가 상기 그림에서 파란색, 성냥이 빨간색이라면 성냥의 대각선 길이인 초록색 선을 기준으로 들어가는지 아닌지를 판단할 수 있다.
직사각형의 대각선 길이는 아래와 같다.

가로와 세로는 사용자가 입력하는 값이기 때문에 이를 활용하면 상기 코드와 같아진다.
그래서 leng에 검사하고자 하는 성냥의 길이를 넣고 위 공식을 그대로 적은 식과 비교해서 식보다 작다면 DA를(박스에 들어갈 수 있음), 아니라면 NE(박스에 못 들어감)를 출력하면 쉽게 풀 수 있다.
'CODING 💻' 카테고리의 다른 글
| 백준 4470번 - '줄번호' (PYTHON 풀이) (0) | 2026.03.30 |
|---|---|
| 백준 17614번 - '369' (PYTHON 풀이) (0) | 2026.03.29 |
| 백준 15969번 - '행복' (PYTHON 풀이) (0) | 2026.03.27 |
| 백준 16486번 - '운동장 한 바퀴' (PYTHON 풀이) (0) | 2026.03.26 |
| 백준 1526번 - '가장 큰 금민수' (PYTHON 풀이) (0) | 2026.03.25 |
