Deep Learning through deep learning

백준 2587번 대표값2 본문

Baekjoon_algorithm_heuristic

백준 2587번 대표값2

NeuroN 2023. 2. 2. 11:29

https://www.acmicpc.net/

 

Baekjoon Online Judge

Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다.

www.acmicpc.net

문제 해석

더보기
  1. 한 줄에 1개씩, 총 5줄에 5개의 숫자가 주어짐
  2. 5개의 숫자들 더한 합 / 5 = 평균값과,
  3. 숫자들을 오름차순으로 정렬했을 때, 중앙에 있는 숫자 (3번째 숫자) 를 각각 줄바꿈으로 출력하면 됨

코드 해석

더보기
  1. 숫자는 5개로 고정이니, 숫자 5개를 담을 a 배열을 생성
  2. 배열의 숫자를 바꿔주기 위해 (오름차순으로 만들기위해) swap이라는 변수를 하나 생성
  3. 첫 for문에서는 숫자 5개를 a 배열에 입력해줌
  4. 두번째 for문에서는 숫자들을 오름차순으로 정렬하기 위한 버블정렬 알고리즘을 사용, 2중 for문으로 각각 5번씩 반복하는데,
  5. a[0]부터 시작해서 a[0]를 a[0]\~a[4]까지 비교해줄 때, a[0]가 크면 뒤로 넘겨야하니 비교한 값과 위치를 바꿔준다.
  6. 이 방법을 a[4]까지 5번 반복을 해주는 코드이며, swap으로 바꿔준다.
  7. 숫자들의 총합을 구하기 위해서는 sum이라는 변수를 0으로 초기화해주고, 모든 수를 sum에 각각 더해준다.
  8. 이제 출력은 sum/5 (평균값) 와 a[2] (중앙값인데 오름차순으로 정렬했으니 중앙은 2번째 인덱스이다) 이다.

코드

#include <iostream>
#include <math.h>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;

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

    int a[5] = {};
    int swap;

    for (int i = 0; i < 5; i++)
    {
        cin >> a[i];
    }

    for (int i = 0; i < 5; i++)
    {
        for (int j = i; j < 5; j++)
        {
            if (a[i] > a[j])
            {
                swap = a[i];
                a[i] = a[j];
                a[j] = swap;
            }
        }
    }

    int sum = 0;
    for (int i = 0; i < 5; i++)
    {
        sum += a[i];
    }

    cout << sum / 5 << endl << a[2];
}

'Baekjoon_algorithm_heuristic' 카테고리의 다른 글

백준 10817번 세 수  (0) 2023.02.08
백준 2566번 최댓값  (0) 2023.02.02
백준 27160번 할리갈리  (2) 2023.02.02
백준 2445번 별찍기-8  (0) 2023.02.02
백준 10991번 별 찍기-16  (0) 2023.02.02