[C++] 백준 15969 행복
2021. 4. 16.
반응형

www.acmicpc.net/problem/15969

 

15969번: 행복

모든 서브태스크에서 2 ≤ N ≤ 1,000이고 입력되는 학생들의 점수는 0 이상 1,000 이하의 정수이다.

www.acmicpc.net

 

1. 서론

 

간단한 구현 문제

 

2. 문제 풀이

 

학생들의 점수가 주어진다. 그중에 가장 큰 점수와 작은 점수의 차를 출력하는 문제이다.

서브 태스크가 있는데 서브 태스크를 별로 고려하지 않고 그냥 생각나는 대로 풀었는데 맞았다.

 

점수를 입력 받으면 배열에 넣고 정렬한다. 그럼 자동으로 배열의 맨 앞에는 가장 작은 점수가 배열의 맨 뒤에는 가장 큰 점수가 오게 된다.

이 둘을 이용해서 출력하고 끝냈다.

근데 min, max 함수를 이용해서 풀어도 될 것 같은데 정렬이 더 간단하다고 생각해서 정렬로 풀었다.

 

3. 코드 설명

 

#include <iostream>
#include <algorithm>

using namespace std;

int main()
{
    int n, i;
    int s[1000];

    cin >> n;

    for (i = 0; i < n; i++)
        cin >> s[i];
    
    sort(s, s + n);

    cout << s[n - 1] - s[0] << endl;
}

 

n의 범위가 1000이라 1000짜리 배열을 임의로 만들어줬다.

n을 입력받고 학생들의 점수를 입력받고 정렬 후 가장 큰 수인 배열의 마지막 항과 가장 작은 수인 배열의 첫 번째 항을 빼준다.

 

 

 

반응형

'Algorithm' 카테고리의 다른 글

[C++] 백준 15312 이름 궁합  (0) 2021.04.16
[C++] 백준 10539 수빈이와 수열  (0) 2021.04.16
[C++] 백준 1236 성 지키기  (1) 2021.03.28
[C++] 백준 1668 트로피 진열  (0) 2021.03.27
[C++] 백준 1568 새  (0) 2021.03.27
myoskin