[백준] 18110번: solved.ac

2024. 9. 15. 15:58·PS

 

 


 

문제

https://www.acmicpc.net/problem/18110

 

 

개념

수학, 구현, 정렬

 

 

 

실행 결과

 

 

 

 

 

코드(c++)

#include <algorithm>
#include <cmath>
#include <iostream>
#include <vector>
using namespace std;

int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);

  long long n;  // 난이도 의견의 개수
  cin >> n;

  if (n == 0) {
    cout << 0;
  } else {
    vector<long long> arr(n);  // 난이도 의견들 저장할 동적 배열 선언

    for (int i = 0; i < n; i++)
      cin >> arr[i];

    sort(arr.begin(), arr.end());  // 난이도 의견을 오름차 순으로 정렬
    long long n_del = round(static_cast<double>(n) *
                            0.15);  // 앞뒤로 제외할 의견 개수 구하고 반올림

    long long sum = 0;  // 난이도 합
    for (int i = n_del; i < n - n_del; i++)
      sum += arr[i];

    long long ave =
        round(static_cast<double>(sum) / (n - 2 * n_del));  // 난이도 평균 계산
    cout << ave;
  }

  return 0;
}

 

 

 

 

코드 설명

이 문제는 난이도가 숫자로 주어지면 절사평균을 구하는 문제이다.

 

먼저 아무 의견이 없다면 0을 출력한다.
아니라면 난이도를 입력받는다. 이 때 입력받는 난이도 개수를 n이라고하면
n의 크기를 가진 동적배열 arr를 선언하고, 해당 배열을 오름차순으로 정렬한다.
왜냐하면 앞 뒤로 15%씩 잘라내서 절사평균을 구해야하기 때문이다.

 

절사평균 구하는 과정?

 

먼저, 앞 뒤로 잘라야하는 의견의 개수를 n_del라고 한다면

n_del는 n의 15%를 반올림해야한다. 이때 반올림할 때는 소숫점이 필요하므로 

정수형 타입은 n을 실수형 타입으로 강제 형변환한 후 반올림해야 올바르게 반올림된다.

마찬가지로 해당 n을 이용하여 평균을 계산할 때도 마찬가지로 강제 형변환을 해야한다.

그렇지 않으면 정수형이 알아서 소숫점 이하를 잘라버리므로 유의하자.

 

 

 


 

 

저작자표시 (새창열림)

'PS' 카테고리의 다른 글

[백준] 11399번: ATM  (0) 2024.09.17
[백준] 28445번: 알록달록 앵무새  (0) 2024.09.16
[백준] 9095번: 1, 2, 3 더하기  (0) 2024.09.15
[백준] 1463번: 1로 만들기  (0) 2024.09.13
[백준] 1602번: 나는야 포켓몬 마스터 이다솜  (2) 2024.09.10
'PS' 카테고리의 다른 글
  • [백준] 11399번: ATM
  • [백준] 28445번: 알록달록 앵무새
  • [백준] 9095번: 1, 2, 3 더하기
  • [백준] 1463번: 1로 만들기
abyss-s
abyss-s
프론트엔드 개발합니다!
  • abyss-s
    abyss-s의 블로그입니다.
    abyss-s
  • 전체
    오늘
    어제
    • 분류 전체보기 (190)
      • Web (16)
        • JavaScript (6)
        • TypeScript (1)
        • React (5)
        • Vue (0)
        • Storybook (1)
        • Next.js (1)
      • Backend & Infra (8)
        • Database (3)
        • Node.js (2)
        • SpringBoot (1)
      • PS (71)
      • CS (30)
        • OS (13)
        • Structure & Algorithm (5)
        • Network (10)
        • 정보처리기사 (2)
      • Language (18)
        • OOP (1)
        • JAVA (13)
        • C++ (4)
      • Activities (14)
        • 멋쟁이 사자처럼 (2)
        • OSSCA (3)
        • LG U+ URECA (5)
        • Project (2)
      • AI (0)
      • Git & Github (5)
      • Notion (1)
      • IT (4)
      • Statistics (11)
      • Book (4)
      • Diary (1)
      • Game (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
    • 백준
    • 트위터
  • 공지사항

    • abyss-s의 티스토리에 오신 것을 환영합니다.
  • 인기 글

  • 태그

    자바기반응용프로그래밍
    React
    BAEKJOON
    생활코딩
    BFS
    DP
    네트워크
    Python
    OS
    C++
    운영체제
    파이썬
    백준
    그리디
    자바스크립트
    Java
    코드트리
    통계학
    github
    JavaScript
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
abyss-s
[백준] 18110번: solved.ac
상단으로

티스토리툴바