[C++] baekjoon 2822, 2752

oat·2024년 4월 9일

everydayBOJ

목록 보기
50/51

Day 50

2822

문제

code

#include <iostream>
#include <algorithm>

using namespace std;

int main() {
    int score[9];
    int order[8] = { 0 }; // 최대값으로 들어갔을 때의 순서 번호
    int maxs[5] = { 0 }; // 가장 높은 점수 다섯 개의 값
    int sum = 0;
    int num;

    for (int i = 1; i <= 8; i++) { // 8개의 답 입력받기
        cin >> score[i];
        num = score[i];
        for (int j = 0; j < 5; j++) { // 입력받은 답이 다섯 개의 값에 들어가는지 확인하기
            if (maxs[j] < num) {
                for (int k = 4; k > j; k--) {
                    maxs[k] = maxs[k - 1];
                    order[k] = order[k - 1];
                }
                maxs[j] = num;
                order[j] = i;
                break;
            }
        }
    }

    for (int i = 0; i < 5; i++) {
        sum += maxs[i];
    }
    cout << sum << endl;
    sort(order, order + 8);

    for (int i = 3; i < 8; i++) {
        cout << order[i] << " ";
    }

    return 0;
}

풀이 과정

최대값보다 큰 값이 발견되면 해당 위치 이후의 값들을 한 칸씩 뒤로 옮긴다
그리고 새로운 최대값을 현재 위치에 할당한다


2752

문제

code

#include <iostream>
#include <algorithm>

using namespace std;

int main() {
    int ans[3] = { 0 };
    for (int i = 0; i < 3; i++) {
        cin >> ans[i];
    }
    sort(ans, ans + 3);
    for (int i = 0; i < 3; i++) {
        cout << ans[i] << " ";
    }
}

풀이 과정

수를 세 개 받아서 정렬 후 출력하도록 하였다

0개의 댓글