문제 : boj9076
필요 알고리즘 개념
- 정렬, 구현
- 정렬을 이용해 문제에서 제시된대로 구현해주는 문제이다.
※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다.
풀이
로직은 아래와 같다.
각 테스트마다
[A]____5개의 점수를 입력받는다.
[B]____5개를 정렬한다. (정렬 후 1번째와 5번째 값은 최고점과 최저점이므로 무시한다.)
[C]________if 2번째 점수와 4번째 점수가 4이상 차이난다면 KIN을 출력한다.
[D]________else 아니라면 2번째점수+3번째점수+4번째점수를 출력한다.
public String solution() throws Exception {
int[] arr = new int[5];
StringTokenizer st = new StringTokenizer(br.readLine());
// [A]
for (int i = 0; i < 5; i++)
arr[i] = Integer.parseInt(st.nextToken());
// [B]
Arrays.sort(arr);
// [C]
if (arr[1]+4<=arr[3])
return "KIN";
// [D]
return String.valueOf(arr[1]+arr[2]+arr[3]);
}
코드 : github
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
private static final BufferedReader br = new BufferedReader(new InputStreamReader(System.in), 1<<16);
public static void main(String[] args) throws Exception {
Main main = new Main();
int t = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
while (t-->0) sb.append(main.solution()).append('\n');
System.out.print(sb);
}
public String solution() throws Exception {
int[] arr = new int[5];
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < 5; i++) arr[i] = Integer.parseInt(st.nextToken());
Arrays.sort(arr);
if (arr[1]+4<=arr[3]) return "KIN";
return String.valueOf(arr[1]+arr[2]+arr[3]);
}
}
'PS > BOJ' 카테고리의 다른 글
[자바] 백준 25377 - 빵 (java) (0) | 2023.01.29 |
---|---|
[자바] 백준 2999 - 비밀 이메일 (java) (0) | 2023.01.27 |
[자바] 백준 1422 - 숫자의 신 (java) (0) | 2023.01.24 |
[자바] 백준 3101 - 토끼의 이동 (java) (0) | 2023.01.23 |
[자바] 백준 1323 - 숫자 연결하기 (java) (0) | 2023.01.21 |
댓글