728x90
반응형
구현 언어: 파이썬
x, y, w, h = map(int, input().split())
answer = 0
# 사각형의 세로 2등분 중 왼쪽
if x <= w/2:
if x >= 0 and y >= h:
answer = y - h
elif x >= 0 and y <= 0:
answer = abs(y)
elif x <= 0 and (y >= 0 and y <= h):
answer = abs(x)
elif x >= 0 and (y >= 0 and y <= h):
if y <= h/2:
answer = min(abs(x), abs(y))
else:
answer = min(abs(x), abs(h-y))
else:
if y > 0:
answer = pow(x ** 2 + (y-h) ** 2 ,1/2)
else:
answer = pow(x ** 2 + y ** 2, 1/2)
# 사각형의 세로 2등분 중 오른쪽
else:
if x <= w and y >= h:
answer = y - h
elif x <= w and y <= 0:
answer = abs(y)
elif x >= w and (y >= 0 and y <= h):
answer = abs(x - w)
elif x >= w/2 and (y >= 0 and y <= h):
if y <= h/2:
answer = min(abs(w - x), abs(y))
else:
answer = min(abs(w - x), abs(h - y))
else:
if y > 0:
answer = pow((x-w) ** 2 + (y-h) ** 2, 1/2)
else:
answer = pow((x-w) ** 2 + y ** 2, 1/2)
print(answer)
시도 횟수: 1
구현 포인트:
케이스를 잘 나눠보면서 하면 된다 ..
조금만 더 보면 코드 더 깔끔하게 짤 수 있을 거 같은데 나중에 해야지 ㅎㅎ
728x90
반응형
'Archive > BOJ' 카테고리의 다른 글
백준 2798번: 블랙잭 (0) | 2021.02.06 |
---|---|
백준 10250번: ACM 호텔 (0) | 2021.02.06 |
백준 1152번: 단어의 개수 (0) | 2021.02.03 |
백준 5532번: 방학 숙제 (0) | 2021.02.03 |
백준 2752번: 세수정렬 (0) | 2021.02.03 |