solved.ac
📌 문제

예제 입력
5
1
5
5
7
8예제 출력
6📌 풀이
Logic
- 난이도 의견 개수 N 입력 받기
- 아무 의견 없으면 '0' 출력 후 프로그램 종료
- 난이도 의견 리스트 입력 받기
- 난이도 순서대로 정렬
- 의견 개수에 다라 절사값 결정
- 절사 평균 출력
# 변수명
N : 난이도 의견 개수
score : 난이도 의견 리스트
trim : 절사값
trimmed_scores : score 절사 리스트
avg : 절사 평균

Python
import sys
import math
Xa, Ya, Xb, Yb, Xc, Yc = map(int, sys.stdin.readline().split())
if ((Xa * (Yb - Yc) + Xb * (Yc - Ya) + Xc * (Ya - Yb)) == 0):
print(-1)
sys.exit()
def dist(x1, y1, x2, y2):
return math.hypot(x1 - x2, y1 - y2)
a = dist(Xa, Ya, Xb, Yb)
b = dist(Xb, Yb, Xc, Yc)
c = dist(Xc, Yc, Xa, Ya)
circum = [2 * (a + b), 2 * (b + c), 2 * (c + a)]
circum.sort()
print((circum[-1] - circum[0]))
✏️ 새로운 내용
-
📚 회고
💡 반올림
- python에서 반올림을 구현하는 방법은 크게 두 가지가 있다.
- round() 함수를 이용하는 방식과 값에 0.5를 더해 int형으로 변환하는 방식이다.
- 처음에는 전자의 방식으로 문제를 해결하였으나 오류가 발생하였다..!
- 똑같은 줄 알았던 두 가지 방식에는 약간의 방식 차이가 있었다.
- round() - Banker's Rounding
- .5일 때 짝수로 반올림
- 통계적 편향 제거 목적
round(2.5) # → 2 (가장 가까운 짝수)round(3.5) # → 4 (가장 가까운 짝수)
- int(x + 0.5) - 전통적 반올림
- .5일 때 항상 올림
- 일반적으로 기대하는 반올림
int(2.5 + 0.5) # → 3 (항상 올림)int(3.5 + 0.5) # → 4 (항상 올림)
- 해당 문제에서는 우리가 흔히 아는 전통적인 반올림의 방식을 요구하기에, 후자를 따르는 것이 옳다.
'BOJ > Silver' 카테고리의 다른 글
| [BOJ] #1064 평행사변형 (0) | 2026.04.13 |
|---|---|
| [BOJ] #9012 괄호 (0) | 2026.04.13 |
| [BOJ] #11441 합 구하기 (0) | 2026.04.13 |
| [BOJ] #2553 마지막 팩토리얼 수 (0) | 2026.04.13 |
| [BOJ] #1448 삼각형 만들기 (0) | 2026.04.13 |