728x90
반응형
안녕하세요. delay100 입니다.
미들러 문제.선택의 기로
https://www.acmicpc.net/problem/30970
가격(pay)과 품질(quality)을 기준으로 정렬을 하면 되는 문제입니다.
chock객체로 pay와 quality를 묶어두고, 문제에서 제시한 조건을 기반으로 총 2번의 정렬을 했습니다.
정렬 시 java의 comparator을 이용하였습니다.
import java.io.*;
import java.util.*;
class chock {
int quality;
int pay;
chock(int quality, int pay) {
this.quality = quality;
this.pay = pay;
}
int getQuality() {
return this.quality;
}
int getPay() {
return this.pay;
}
}
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));
int N = Integer.parseInt(br.readLine());
chock[] chockList = new chock[N];
for(int i=0; i<N; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int quality = Integer.parseInt(st.nextToken());
int pay = Integer.parseInt(st.nextToken());
chockList[i] = new chock(quality, pay);
}
StringBuilder sb = new StringBuilder();
Arrays.sort(chockList, new Comparator<chock>() {
@Override
public int compare(chock o1, chock o2) {
if(o1.getQuality() < o2.getQuality()) return 1; // 품질을 기준으로 내림차순 정렬
else if(o1.getQuality() == o2.getQuality()) {
if(o1.getPay() > o2.getPay()) return 1; // 품질이 같은 경우 가격을 기준으로 오름차순
}
return -1;
}
});
sb.append(chockList[0].getQuality() + " " + chockList[0].getPay() + " " + chockList[1].getQuality() + " " + chockList[1].getPay());
sb.append("\n");
Arrays.sort(chockList, new Comparator<chock>() {
@Override
public int compare(chock o1, chock o2) {
// return Integer.compare(o1.getPay(), o2.getPay());
if(o1.getPay() > o2.getPay()) return 1; // 가격을 기준으로 오름차순 정렬
else if(o1.getPay() == o2.getPay()) {
if(o1.getQuality() < o2.getQuality()) return 1; // 가격이 같은 경우 품질을 기준으로 내림차순
}
return -1;
}
});
sb.append(chockList[0].getQuality() + " " + chockList[0].getPay() + " " + chockList[1].getQuality() + " " + chockList[1].getPay());
bw.write(sb.toString());
br.close();
bw.close();
}
}
w
+ 비기너 문제
골뱅이 찍기 - 돌아간 ㅍ (https://www.acmicpc.net/problem/23812)
+ 챌린저 문제
잃어버린 괄호 (https://www.acmicpc.net/problem/1541)
감사합니다. 피드백 환영합니다.
728x90
반응형
'항해99 > 99club1기TIL' 카테고리의 다른 글
[99club/TIL] 5주차 - 토요일 TIL(Today I Learned) (0) | 2024.04.27 |
---|---|
[99club/TIL] 5주차 - 수요일 TIL(Today I Learned) (0) | 2024.04.24 |
[99club/TIL] 5주차 - 월요일 TIL(Today I Learned) (1) | 2024.04.22 |
[99club/TIL] 4주차 - 일요일 TIL(Today I Learned) (1) | 2024.04.22 |
[99club/TIL] 4주차 - 토요일 TIL(Today I Learned) (0) | 2024.04.20 |