※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 9782번 문제인 Median이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/9782
9782번: Median
ค่ามัธยฐาน หรือ Median คือค่ากึ่งกลางของกลุ่มข้อมูลที่เรียงลําดับ นั่นคือจํานวนข้อมูลที่น้อย
www.acmicpc.net
주어진 길이 N의 정렬된 정수열의 중앙값(median)을 구하는 문제이다. 중앙값은 N이 홀수이면 정가운데의 원소이고 짝수이면 정가운데의 두 원소의 평균으로 계산한다.
주어지는 배열이 미리 정렬된 상태로 주어지므로 적절히 인덱스를 찾아 문제를 해결하자. 실수오차를 피하고싶다면 문제의 답을 10배한 값을 계산한 뒤 10으로 나눈 몫과 나머지를 이용할 수도 있다.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
int N;
int arr[100];
int T;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> N;
while (N) {
for (int i = 0; i < N; i++) cin >> arr[i];
T++;
cout << "Case " << T << ": ";
int ans;
if (N & 1) ans = arr[N / 2] * 10;
else ans = (arr[N / 2 - 1] + arr[N / 2]) * 5;
cout << ans / 10 << '.' << ans % 10 << '\n';
cin >> N;
}
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 1652 // C++] 누울 자리를 찾아라 (0) | 2023.02.15 |
---|---|
[BOJ 9773 // C++] ID Key (0) | 2023.02.14 |
[BOJ 9783 // C++] Easy Encryption (0) | 2023.02.14 |
[BOJ 16171 // C++] 나는 친구가 적다 (Small) (0) | 2023.02.14 |
[BOJ 27465 // C++] 소수가 아닌 수 (0) | 2023.02.14 |