C#

백준 C# 18110 문제 풀이

psb08 2024. 12. 21. 11:56
728x90

문제 링크 : https://www.acmicpc.net/problem/18110

목차

1. 설명

 

2. 내 코드

 

3. 문제 풀이 해석 내용

 

4. 실행 결과

 

설명

백준 실버 4 문제 입니다.

문제명 : solved.ac

 

내 코드

StreamReader sr = new StreamReader(new BufferedStream(Console.OpenStandardInput()));
StreamWriter sw = new StreamWriter(new BufferedStream(Console.OpenStandardOutput()));

int n = int.Parse(sr.ReadLine());

int result = 0;

if (n == 0) 
{
    result = 0;
} 

else
{
    int p;

    if ((n * 0.15) % 1 < 0.5) p = (int)(n * 0.15);
    else p = (int)(n * 0.15) + 1;
    double[] arr = new double[n];

    for (int i = 0; i < n; i++) arr[i] = (int.Parse(sr.ReadLine()));

    Array.Sort(arr);

    for (int i = 0; i < p; i++) arr[i] = 0;
    for (int i = 1; i <= p; i++) arr[n - i] = 0;

    double average = arr.Sum() / (n - p * 2);

    if (average % 1 < 0.5) result = (int)average;
    else result = (int)average + 1;
}
sw.WriteLine(result);
sr.Close();
sw.Flush();
sw.Close();

 

문제 풀이 해석 내용

 

입력 및 출력 스트림 설정

StreamReader sr = new StreamReader(new BufferedStream(Console.OpenStandardInput()));
StreamWriter sw = new StreamWriter(new BufferedStream(Console.OpenStandardOutput()));

 

 

정수 n 입력 받기

int n = int.Parse(sr.ReadLine());

 

 

결과 초기화

int result = 0;

 

 

조건에 따른 처리

if (n == 0) 
{
    result = 0;
} 
else
{
    int p;

    if ((n * 0.15) % 1 < 0.5) p = (int)(n * 0.15);
    else p = (int)(n * 0.15) + 1;

 

 

배열 초기화 및 입력 받기

double[] arr = new double[n];

for (int i = 0; i < n; i++) arr[i] = (int.Parse(sr.ReadLine()));

 

 

배열 정렬

Array.Sort(arr);

 

 

최소 및 최대 p개의 수 제거

for (int i = 0; i < p; i++) arr[i] = 0;
for (int i = 1; i <= p; i++) arr[n - i] = 0;

 

 

평균 계산

double average = arr.Sum() / (n - p * 2);

 

 

결과 반올림 처리

if (average % 1 < 0.5) result = (int)average;
else result = (int)average + 1;

 

 

결과 출력

sw.WriteLine(result);
sr.Close();
sw.Flush();
sw.Close();

 

 

실행 결과

실행 결과

 

728x90

'C#' 카테고리의 다른 글

백준 C# 2108 문제 풀이  (0) 2024.12.23
백준 C# 9012 문제 풀이  (0) 2024.12.22
백준 C# 1920 문제 풀이  (0) 2024.12.20
백준 C# 10816 문제 풀이  (0) 2024.12.19
백준 C# 10773 문제 풀이  (0) 2024.12.18