반응형
String[][] 배열을 이용한 후, Comparator 익명 클래스를 이용해서 정렬하는 방법
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
String[][] mem = new String[N][2];
for(int i=0; i<N; i++){
mem[i][0] = sc.next();
mem[i][1] = sc.next();
}
Arrays.sort(mem, new Comparator<String[]>() {
@Override
public int compare(String[]age1, String[]age2){
return Integer.parseInt(age1[0]) - Integer.parseInt(age2[0]);
}
});
for(int i=0; i<N; i++){
System.out.print(mem[i][0] + " ");
System.out.println(mem[i][1]);
}
sc.close();
}
}
구조체를 이용하면 서로 다른 자료형을 같이 쓸 수 있다고 해서 도전해보았으나 아직까지는 문제 해결이 안된 상태다ㅠ
❗️❗️ 틀린 코드
구조체 이용하는 방법 시도
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
class Member{
int age;
String name;
}
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
Member mem;
mem = new Member();
for(int i=0; i<N; i++){
mem.age = sc.nextInt();
mem.name = sc.next();
}
Arrays.sort(mem, new Comparator<Member>() {
@Override
public int compare(Member age1, Member age2){
return age1.age - age2.age;
}
});
System.out.print(mem.age + " ");
System.out.println(mem.name);
sc.close();
}
}
sort 부분에서 오류가 나는데 이걸 어떻게 해결해줘야할지 아직 모르겠다...
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 10815 - 숫자 카드 (JAVA/ 자바) (0) | 2024.07.14 |
---|---|
[백준] 18870 - 좌표 압축 (JAVA/ 자바) (0) | 2024.06.26 |
[백준] 1181 - 단어 정렬 (JAVA/ 자바) (1) | 2024.06.13 |
[백준] 11651 - 좌표 정렬하기 2 (JAVA/ 자바) (0) | 2024.06.11 |
[백준] 11650 - 좌표 정렬하기 (JAVA/ 자바) (0) | 2024.06.09 |