본문 바로가기
C++/백준

[C++백준] 브론즈 2/ 2587번 대표값

by Meaning_ 2022. 1. 23.
728x90
반응형

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

 

2587번: 대표값2

어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30의 평균은 (10 + 40 + 30 + 60 +

www.acmicpc.net

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include<algorithm>
using namespace std;
 
int main() {
 
    int arr[5];
    int sum = 0;
    int mid = 0;
    
 
    for (int i = 0; i < 5; i++) {
        cin >> arr[i];
        sum += arr[i];
    }
 
    //정렬
    //첫번째 인자= 배열의 포인터 (arr ==&arr[0])
    //두번째 인자= 배열의 포인터 +배열의 크기
    sort(arr, arr + 5);
    mid = arr[2];
 
    cout << sum / 5 << endl;
    cout << mid << endl;
cs

 

이 문제는 C++에서 정렬 알고리즘을 알아가는데 의의가 있는 것 같다. 배열을 오름차순 정렬할때

직접구현하는 방법도 있지만 상단에 #include <algorithm> 쓰면 이 헤더 안에 있는 sort()함수를 사용할 

수 있다. sort함수는 C++ STL에서 제공하는 함수이며, 시간 복잡도는 nlogn이다. 

 

사용법은 sort(배열의 포인터,배열의 포인터+배열의 크기)

즉 여기서는 sort(arr,arr+10)으로 쓰면 된다. 배열의 이름은 포인터와 같은 역할을 하기 때문이다.

arr==&arr[0]이라는 것은 익히 알고 있는 사실이고, 이 첫번째 주소가 배열을 대표하는 주소이기도 하다. 

 

참고자료 

https://coding-factory.tistory.com/595

 

[C++] STL 정렬 sort 함수 사용법 & 예제 (오름차순 , 내림차순)

정렬이 필요할때마다 직접 만들어서 사용할수도 있겠지만 매번 만들어서 사용하기는 번거롭습니다. 간편하게 정렬을 하고 싶다면 직접구현보다는 헤더를 include하여 그 안에 있는 sort()함수를

coding-factory.tistory.com

 

728x90
반응형

댓글