[BOJ] 백준_23561번_Young한 에너지는 부족하다_C/C++백준 알고리즘2021. 11. 18. 10:24
목차
문제 출처
https://www.acmicpc.net/problem/23561
문제
대한민국 최고의 스트릿 알고리즘 크루를 찾기 위한 리얼리티 서바이벌 <스트릿 알고리즘 파이터>! 전국에서 알고리즘을 잘한다는 3N명의 대학생들이 참여했고, 이들은 3명씩 N개의 크루를 이루어 스트릿 알고리즘 배틀을 벌이게 된다.
하지만 컴퓨터공학도들은 언제나 혼자 코딩을 해왔기 때문에 제작진이 크루를 만들어주어야 한다...
제작진은 혹시나 young한 에너지가 부족한 크루가 생기지 않을까 걱정하고 있다. 그래서 제작진은 아래와 같은 점을 고려해 N개의 크루를 구성하려 한다.
크루원의 연령의 중간값, 즉 세 명 중 두번째로 연령이 높은 크루원의 연령을 크루의 에너지라 부르자.제작진은 가장 에너지가 높은 크루와 가장 에너지가 낮은 크루의 에너지 차이를 최소화해야 한다.
최소화한 값을 구하라.
입력
첫째 줄에 N이 주어진다. 참가자는 총 3N명이다.
둘째 줄에 3N개의 정수가 공백을 사이에 두고 주어진다. i번째 정수 a[i]는 i번째 참가자의 연령이다.
출력
3N명의 참가자로 크루 N개를 적절히 구성해, 가장 에너지가 높은 크루와 가장 에너지가 낮은 크루의 에너지 차이를 최소화했을 때의 에너지 차이 값을 출력하라.
코드
//[BOJ] 23561번_Young한 에너지는 부족하다
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int n;
cin >> n;
int* arr = new int[n * 3];
for (int i = 0; i < n * 3; i++)
cin >> arr[i];
sort(arr, arr + n * 3);
cout << arr[2 * n - 1] - arr[n] << endl;
delete[]arr;
return 0;
}
풀이 과정
n*3만큼 참가자들의 연령을 입력받은 후 여기서 가운뎃 값을 고르기 위해 오름차순으로 정렬해준다. 정렬된 배열의 가운데 부분은 총 n개여야 하므로 인덱스는 n부터 2n-1번째 가 된다. 예를 들어 크루가 3개이면 오름차순 정렬된 배열의 인덱스 3부터 인덱스 5까지가 가운뎃 값이므로 가운뎃 값 중 가장 큰 값인 arr[2n-1]에서 arr[n]을 뺀 값을 출력한다.
728x90
반응형
LIST
'백준 알고리즘' 카테고리의 다른 글
[BOJ] 백준_8958번_ OX퀴즈_C/C++ (6) | 2021.11.20 |
---|---|
[BOJ] 백준_1546번_ 평균_C/C++ (0) | 2021.11.20 |
[BOJ] 백준_10951번_A + B - 4_C/C++ (0) | 2021.11.17 |
[BOJ] 백준_23351번_물 주기_C/C++ (0) | 2021.11.12 |
[BOJ] 백준_1110번_더하기 사이클_C/C++ (0) | 2021.11.10 |
@kdj :: Childev'note
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!