알고리즘 C#

백준 2587번 대표값2 C#으로 문제 풀어보기

minsoungdev 2025. 7. 28. 23:25

안녕하세요 저는 박민성입니다. 

 

오늘은 백준 2587번 대푯값 2를 풀어 보겠습니다.

 

문제를 보면 

입력은 첫째 줄부터 100 보다 작은 10의 배수의 수가 한 줄에 하나씩 자연수가 주어집니다.

 

출력은 첫째 줄에는 평균을 출력하고, 둘째 줄에는 중앙값을 출력합니다.

평균을 구하는 방법은 모든 수를 더한 다음 더한 수의 횟수만큼 나누어주면 평균값이 나옵니다.

(예: 10 20 30 40 50이라는 수가 주어지면 10+20+30+40+50 = 150이고 다섯 번 더해주었으니 150 / 5을 한다면 30이 평균값입니다.)

중앙값을 구하는 방법은 주어진 수 중에 수의 크기를 재었을 때 가장 중앙에 있는 값이 중앙값입니다.

(예: 20 40 50 10 30이라는 수가 주어진다면 크기대로 정렬했을 때  10 20 30 40 50이 되고 그중에 중앙값은 30이 됩니다.)

 

저는 문제를 봤을 때

 Array에 Sort라는 메서드를 사용하기로 했습니다. 

Sort는 안에 배열 int []를 넣으면 배열에 있는 수가 오름차순으로 정렬이 됩니다.

그래서

변수형 int []로 arr라고 변수 선언을 해줍니다. 입력은 딱 5개까지이니 크기를 5로 정해줍니다.

그리고 평균값을 구하기 위해서 수를 다 더해줄 num이라는 int형 변수도 선언해 줍니다.

for 문을 사용하여 5번 반복해 줍니다 num에는 입력받은 값을 게속 해주고 arr[] i번째에 입력 받은 수를 넣어줍니다.

for문이 끝난 다음에 Sort메서드를 사용하여 arr를 오름차순 해줍니다.

마지막으로 num을 5로 나누어주어 평균값을 출력하고 arr에 3번째 값인 중앙값을 출력해 주면 끝입니다.

 

하지만 이 코드는 틀렸습니다.

왜냐하면 인덱스 번호는 0부터 시작이기 때문에 3을 넣으면 4번째 값이 나옵니다.

그렇기 때문에 2를 넣어야 3번째 값이 나와서 중앙값이 제대로 나옵니다.

이것이 전체 코드입니다.

이렇게 백준에 제출하였더니 

정답이었습니다.