https://www.acmicpc.net/problem/9076
9076번: 점수 집계
입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 한 줄에 다섯 심판이 준 점수 다섯 개의 정수 Ni(1 ≤ Ni ≤ 10, i = 1, 2, ..., 5)가 하나의 공백을 사이에 두고
www.acmicpc.net
c++로 백준 9076번 문제를 풀어보겠다.
문제
한국 체조협회에서는 심판의 오심을 막기 위하여 점수 집계 시스템을 고치기로 하였다. 이전에는 5명의 심판이 1점부터 10점까지 정수의 점수를 주면 최고점과 최저점을 하나씩 제외한 점수의 합을 총점으로 하였다. 이를 보완하기 위해서 최고점과 최저점을 뺀 나머지 3명 점수의 최고점과 최저점의 차이가 4점 이상 나게 되면 점수 조정을 거쳐서 다시 점수를 매기려고 한다. 점수를 집계하여 총점을 계산하거나, 점수 조정을 거쳐서 다시 점수를 매기려고 하는 경우에는 총점 대신 KIN(Keep In Negotiation)을 출력하는 프로그램을 작성하시오.
입력
입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 한 줄에 다섯 심판이 준 점수 다섯 개의 정수 Ni(1 ≤ Ni ≤ 10, i = 1, 2, ..., 5)가 하나의 공백을 사이에 두고 주어진다.
출력
각 테스트 케이스에 대해서 총점을 한 줄씩 출력한다. 만일 점수 조정을 거쳐서 다시 점수를 매기려고 하는 경우에는 총점 대신 KIN을 출력한다.
예제 입력 1 복사
4
10 8 5 7 9
10 9 10 9 5
10 3 5 9 10
1 2 3 6 9
예제 출력 1 복사
24
28
KIN
KIN
<문제 풀이>
1. 케이스 개수 T를 선언한 후 입력받는다.
2. int 형의 arr[5]배열을 선언한다.
3. 아래의 while 반복문을 T번 반복하며 계산한다.
- while 문 코드 내용
배열에 5개의 숫자를 입력받아 저장한다.
최대, 최소인 값을 각각 if 조건문을 통해 알아낸다.
최대, 최소인 값을 제외한 3개의 값을 더해 sum 값에 저장한다.
두번째로 최대, 최소인 값을 if 조건문을 통해 알아낸다.
두번째로 최대, 최소인 값의 차이가 4이상이면 "KIN"을 출력하고 아니면 계산한 sum 값을 출력한다.
코드는 다음과 같다.
visual studio에선 잘 출력되는데 백준에서는 틀렸다고 나온다. 정답코드와 비교하며 무엇이 잘못되었는지 나중에 다시 확인해 봐야겠다.


'C++' 카테고리의 다른 글
[백준 알고리즘] 3052번 : 나머지, c++ (0) | 2022.01.16 |
---|---|
[백준 알고리즘] 10872번 : 팩토리얼, c++ (0) | 2022.01.16 |
[백준 알고리즘] 10808번 : 알파벳 개수, c++ (0) | 2022.01.15 |
[백준 알고리즘] 10821번 : 정수의 개수, c++ (0) | 2022.01.15 |
[백준 알고리즘] 10953번 : A+B - 6, c++ (0) | 2022.01.14 |