문제
5명의 심사위원 점수 중 최고/최저를 제외한 3개의 합을 구하라. 최고-최저 차이가 4 이상이면 "KIN"을 출력한다.
입력
테스트 케이스 수 T, 각 줄에 5개의 점수가 주어진다.
출력
각 케이스에 대해 합 또는 "KIN"을 출력한다.
예제
| 입력 | 출력 |
|---|---|
2 10 8 5 7 9 10 8 5 4 9 | 24 KIN |
풀이
5개 점수를 정렬한 뒤 중간 3개(인덱스 1~3)의 합을 구하고, 최고-최저 차이를 확인한다.
- 5개 점수를 오름차순 정렬한다
score[3] - score[1](최고-최저 중 중간값 기준)이 4 이상이면 "KIN"- 아니면
score[1] + score[2] + score[3]을 출력한다
핵심 아이디어: 정렬 후 인덱스 1~3이 최고/최저를 제외한 중간 3개이다.
코드
package day499;
import java.util.*;
public class Day453BOJ9076점수집계 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int[] score = new int[5];
for (int i = 0; i < num; i++) {
for (int j = 0; j < score.length; j++) {
score[j] = sc.nextInt();
}
Arrays.sort(score);
if (score[3] - score[1] >= 4) {
System.out.println("KIN");
} else
System.out.println(score[1] + score[2] + score[3]);
}
sc.close();
}
}복잡도
- 시간: O(T) - 고정 5개 정렬
- 공간: O(1)