문제
코이 초등학교에 새로 부임하신 교장 선생님은 어린 학생들의 행복감과 학생들의 성적 차이 관계를 알아보기로 했다. 그래서 이전 성적을 조사하여 학생 들의 시험 점수 차이 변화를 알아보려고 한다.
예를 들어서 2016년 학생 8명의 점수가 다음과 같다고 하자.
27, 35, 92, 75, 42, 53, 29, 87
그러면 가장 높은 점수는 92점이고 가장 낮은 점수는 27점이므로 점수의 최대 차이는 65이다. 한편 2017년 학생 8명의 점수가 다음과 같았다.
85, 42, 79, 95, 37, 11, 72, 32
이때 가장 높은 점수는 95점이고 가장 낮은 점수는 11점이므로 점수의 최대 차이는 84이다.
N명 학생들의 점수가 주어졌을 때, 가장 높은 점수와 가장 낮은 점수의 차이를 구하는 프로그램을 작성하시오
입력
표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 학생 수 N이 주어진다. 다음 줄에는 N명의 학생 점수가 공백 하나를 사이에 두고 주어진다.
출력
표준 출력으로 가장 높은 점수와 가장 낮은 점수의 차이를 출력한다.
제한
모든 서브태스크에서 2 ≤ N ≤ 1,000이고 입력되는 학생들의 점수는 0 이상 1,000 이하의 정수이다.
예제 입력 1
5
27 35 92 75 42
예제 출력 1
65
[ 문제 분석 ]
첫번째 줄에는 학생 수를 입력받고, 두번째 줄에 학생 수 만큼 점수를 띄어쓰기를 포함해서 작성하면 된다.
학생 수 대로 작성된 점수 중 최댓값과 최솟값의 차를 구하면 된다.
[ 코드 ]
[ 문제 풀이 ]
아주 간단한 문제였다.
하지만 나는 두가지 실수를 하고 말았는데, 첫번째는 sort함수를 사용을 안하고 반복문으로 오름차순을 정리했다.
algorithm 헤더파일에 속해있는 sort함수를 사용한다면 한 줄로 오름차순을 정리할 수 있다.
sort(배열의 포인터, 배열의 포인터+배열의 크기)로 작성하면 된다.
두번째 실수는 배열의 크기를 잘못 생각해서 잠시 헤멨다는 것이다.
만약 크기가 a인 배열 arr이 있다면, 이 배열의 가장 마지막 수는 arr[a-1]이다.
'Koala - 5기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[BOJ/python] 11047번 동전 0 (0) | 2022.03.06 |
---|---|
[BOJ/PYTHON] - 15969 행복 (0) | 2022.03.06 |
[백준/python] 14650:걷다보니 신천역 삼(small) (0) | 2022.03.03 |
<8주차> [BOJ / C++] 1931번 - 회의실 배정 (0) | 2022.03.01 |
[백준/C++] 4963번 섬의 개수 (0) | 2022.02.28 |