728x90
https://www.acmicpc.net/problem/11948
선택과목을 통해 최대값을 구하는 문제.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class BJ11948 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//택 3
int A = Integer.parseInt(br.readLine()); //물리
int B = Integer.parseInt(br.readLine()); //화학
int C = Integer.parseInt(br.readLine()); //생물
int D = Integer.parseInt(br.readLine()); //지구과학
int Sum1 = 0;
int[] total = new int[] {A, B, C, D};
Arrays.sort(total);
Sum1 = total[1]+total[2]+total[3]; //택 3 최대값
//택 1
int E = Integer.parseInt(br.readLine()); //역사
int F = Integer.parseInt(br.readLine()); //지리
int Sum2 = Math.max(E, F);
System.out.println(Sum1 + Sum2);
}
}
4과목중 3과목을 택하는 과정에서 배열을 적용하였다. 4개의 입력되는 값을 차례대로 배열에 담고, sort를 통해 낮은순서부터 차례대로 정렬하여, 가장 마지막 값부터 Sum1에 순차적으로 담아, 가장 큰 점수의 합이 나오도록 설정하였다.
2과목 중 1과목을 선택하는 과정에서는 두 수의 최대값을 비교할 수 있는 Math.max() 를 적용하였다.
이후 각각 합을 담아둔 Sum1과 Sum2를 사칙연산해주면 원하는 최고점수를 계산 할 수가 있다.
728x90
'Algorithm' 카테고리의 다른 글
[Java] 백준 17388번 와글와글 숭고한 (0) | 2022.01.21 |
---|---|
[Java] 백준 23825번 SASA 모형을 만들어보자 (0) | 2022.01.13 |
[Java] 백준 10179번 쿠폰 (0) | 2021.12.29 |
[Java] 백준 10039번 평균 점수 (0) | 2021.12.29 |
[Java] 백준 5575번 타임 카드 (0) | 2021.12.23 |