반응형
https://codeup.kr/problem.php?id=1805
입체기동장치 생산공장
첫째 줄부터 n번째 줄까지 각 줄에 식별번호를 오름차순으로 정렬해 가스 보유량과 같이 출력한다.
codeup.kr
문제
---
입체기동장치 생산공장에서는 거인들을 물리치기 위한 기계가 생산되고 있습니다.
이 공장을 운영하는 에렌은 입체기동장치(1~100)의 식별번호(1~100)와 가스 보유량(0~10000)을 같이 관리하려고 합니다.
하지만, 식별번호를 정렬할 때 가스 보유량이 뒤죽박죽 되어 버려 골머리를 앓고 있습니다.
에렌을 남몰래 좋아하고 있던 미카사는 에렌이 스트레스성 탈모로 잔머리가 모두 빠지기 전에 이 문제를 해결해주려 합니다.
미카사가 에렌의 스트레스성 탈모를 막을 수 있도록 프로그램을 작성하세요.
식별번호가 한번 정해지면 그 입체기동장치의 가스 보유량은 정렬되더라도 변하지 않아야 합니다.
풀이
---
저는 구조체와 Comparator를 활용하여 정렬을 했습니다.
import java.util.*;
class Dev{
int a;
int b;
public Dev(int a, int b){
this.a = a;
this.b = b;
}
public int getA(){
return this.a;
}
public int getB(){
return this.b;
}
public void setA(int a){
this.a = a;
}
public void setB(int b){
this.b = b;
}
}
public class Main {
public static void main(String[] arg) throws Exception{
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
List<Dev> list = new ArrayList<Dev>();
for(int i=0; i<num; i++){
int a = sc.nextInt();
int b = sc.nextInt();
list.add(new Dev(a, b));
}
Collections.sort(list, new Comparator<Dev>(){
@Override
public int compare(Dev o1, Dev o2){
if(o1.getA()>o2.getA()) return 1;
else if(o2.getA()>o1.getA()) return -1;
else return 0;
}
});
for(Dev dev : list){
System.out.println(dev.getA()+" "+dev.getB());
}
}
}
https://github.com/dopal2/CodeUp/blob/main/src/Main.java_1805
반응형
'알고리즘 > 코드업' 카테고리의 다른 글
[#CodeUp] 1166 : 윤년 판별 (0) | 2024.03.03 |
---|---|
[#CodeUp] 2601 : 피보나치 수열 (0) | 2024.02.27 |
[#CodeUp] 1915 : (재귀함수) 피보나치 수열 (0) | 2024.02.23 |
[#CodeUp] 1912 : (재귀함수) 팩토리얼 계산 (0) | 2024.02.23 |
[#CodeUp] 1353 : 삼각형 출력하기 1 (0) | 2024.02.23 |
댓글