728x90
반응형
2024.05.23기준 - 브롣즈1
백준, BEAKJOON, BOJ, JAVA, 자바
풀이
이 문제는 물건을 구매했을때, 주어진 구매했을 때의 이익과 물건의 가격을 이용하여 순수익을 계산하는 문제입니다.
문제에서 순수익을 계산하는 방법이 나와있습니다.
- 자신을 제외한 나머지 물건의 이익 중 가장 큰 값에서 자신의 가격을 뺀 것이 기회비용이다.
- 물건을 구매했을 때의 이익에서 그 물건의 기회비용과 가격을 뺀 것이 순수익이다.
이 방식을 통해 계산법을 생각해봤습니다.
- (기회비용) = (자신을 제외한 나머지 물건의 이익 중 가장 큰 값) - (자신의 가격)
- (순수익)
= (물건을 구매했을 때의 이익) - (자신의 기회비용) - (자신의 가격)
= (이익) - ((자신을 제외한 이익 중 가장 큰 값) - (자신의 가격)) - (자신의 가격)
= (이익) - (자신을 제외한 이익 중 가장 큰 값) + (자신의 가격) - (자신의 가격)
= (이익) - (자신을 제외한 이익 중 가장 큰 값)
이렇게 계산법이 나와 필요한 값은 결국 이익과 자신을 제외한 이익 중 가장 큰 값이 나왔습니다.
배열을 2개 생성해 하나는 일반적으로 값을 넣어주며, 하나는 sort를 위해 따로 값을 넣어 주었습니다.
제일 큰 값을 max에 넣어주며,
자신의 물건의 가격이 max값이라면 sort된 배열에서 2번째 가격을 선택해 순수익을 계산하는 방식으로 진행했습니다.
코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
int n = Integer.parseInt(br.readLine()); // 물건의 개수
int max = 0; // 제일 큰 이익
int[] profit = new int[n]; // 이익
Integer[] sortProfit = new Integer[n]; // 이익을 정렬하기 위한 배열
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < n; i++) {
profit[i] = Integer.parseInt(st.nextToken());
max = Math.max(max, profit[i]);
sortProfit[i] = profit[i];
}
st = new StringTokenizer(br.readLine()); // 자신의 가격
Arrays.sort(sortProfit, (o1, o2) -> o2 - o1); // 내림차순 정렬
for (int i = 0; i < n; i++) {
if (profit[i] == max) { // 가장 큰 값이 들어 왔을때, 자신을 제외한 큰 값 : sortProfit[1]
sb.append(profit[i] - sortProfit[1]);
} else {
sb.append(profit[i] - max);
}
sb.append(" ");
}
bw.write(sb.toString());
bw.flush();
bw.close();
br.close();
}
}
728x90
반응형
'코딩테스트 일기 (BAEKJOON)' 카테고리의 다른 글
BAEKJOON / 백준 - JAVA 11070번 피타고라스 기댓값 (0) | 2024.05.26 |
---|---|
BAEKJOON / 백준 - JAVA 31798번 단원평가 (0) | 2024.05.24 |
BAEKJOON / 백준 - JAVA 31821번 학식 사주기 (0) | 2024.05.22 |
BAEKJOON / 백준 - JAVA 31822번 재수강 (0) | 2024.05.21 |
BAEKJOON / 백준 - JAVA 31823번 악질 검거 (2) | 2024.05.20 |