ํ์๊ณผ ์ ๋ ฌ ๋ฌธ์ ํ์ด(2)
์๋ ๋ฌธ์ ๋ค์ java๊ธฐ์ค Comparator ํด๋์ค๋ฅผ implements ํ๋ ํด๋์ค๋ฅผ ์ ์ํ๊ณ compare ๋ฉ์๋๋ฅผ @Override ํ์ฌ ์ํ๋ ์กฐ๊ฑด์ผ๋ก ์ ๋ ฌ ํ ์ ์๊ฒ ํ๋๊ฒ ๊ด๊ฑด์ธ ๋ฌธ์ ๋ค์ด๋ค.
์ด์ธ์ ๊ณต๋ถํ ์ฌํญ์ ์์ด๋ณด์ด๋ ์ฌ์ด ์ ๋ ฌ ๋ฌธ์ ๋ค์ด๋ค.
A – 1026 ๋ณด๋ฌผ https://www.acmicpc.net/problem/1026
package baekjoon.part01_03;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
import static java.util.Comparator.reverseOrder;
// ๋ฐฑ์ค๊ธธ๋ผ์ก์ด part01_03 ํ์๊ณผ ์ ๋ ฌ : 1026 ๋ณด๋ฌผ
public class Num1026_๋ณด๋ฌผ {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
int[] a = new int[n];
Integer[] b = new Integer[n];
for(int i=0; i<n; i++){
a[i] = Integer.parseInt(st.nextToken());
}
st = new StringTokenizer(br.readLine());
for(int i=0; i<n; i++){
b[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(a);
Arrays.sort(b, (o1,o2)->o2-o1);
int answer = 0;
for(int i=0; i<n; i++){
answer += a[i]*b[i];
}
System.out.println(answer);
}
}
B – 1181 ๋จ์ด ์ ๋ ฌ https://www.acmicpc.net/problem/1181
package baekjoon.part01_03;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashSet;
import java.util.Set;
// ๋ฐฑ์ค๊ธธ๋ผ์ก์ด 1-3 ํ์๊ณผ ์ ๋ ฌ : ๋จ์ด ์ ๋ ฌ
public class Num1181_๋จ์ด์ ๋ ฌ {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
Set<String> set = new HashSet<>();
for(int i=0; i<n; i++){
set.add(br.readLine());
}
String[] arr = set.toArray(new String[set.size()]);
Arrays.sort(arr, new myComparator());
for(int i=0; i<arr.length; i++){
System.out.println(arr[i]);
}
}
}
class myComparator implements Comparator<String>{
@Override
public int compare(String s1, String s2){
int temp = 0;
if(s1.length() == s2.length()){
for(int i=0; i<s1.length(); i++){
if(s1.charAt(i) != s2.charAt(i)){
temp = (int)s1.charAt(i) - (int)s2.charAt(i);
break;
}
}
}else{
temp = s1.length() - s2.length();
}
return temp;
}
}
C – 11650 ์ขํ ์ ๋ ฌํ๊ธฐ https://www.acmicpc.net/problem/11650
package baekjoon.part01_03;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Num11650_์ขํ์ ๋ ฌํ๊ธฐ {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[][] arr = new int[n][2];
for(int i=0; i<n; i++){
StringTokenizer st = new StringTokenizer(br.readLine());
arr[i][0] = Integer.parseInt(st.nextToken());
arr[i][1] = Integer.parseInt(st.nextToken());
}
Arrays.sort(arr, new coordinateComparator());
for(int i=0; i<n; i++){
System.out.println(arr[i][0] + " " + arr[i][1]);
}
}
}
class coordinateComparator implements Comparator<int[]> {
@Override
public int compare(int[] o1, int[] o2){
if(o1[0] != o2[0]){
return o1[0] - o2[0];
}else{
return o1[1] - o2[1];
}
}
}
C* - 11651 ์ขํ ์ ๋ ฌํ๊ธฐ 2 https://www.acmicpc.net/problem/11651
package baekjoon.part01_03;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;
public class Num11651_์ขํ์ ๋ ฌํ๊ธฐ2 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[][] arr = new int[n][2];
for(int i = 0; i < n; i++){
StringTokenizer st = new StringTokenizer(br.readLine());
arr[i][0] = Integer.parseInt(st.nextToken());
arr[i][1] = Integer.parseInt(st.nextToken());
}
Arrays.sort(arr, new coordinate2Comparator());
for(int i=0; i<n; i++){
System.out.println(arr[i][0] + " " + arr[i][1]);
}
}
}
class coordinate2Comparator implements Comparator<int[]>{
@Override
public int compare(int[] o1, int[] o2){
if(o1[1] != o2[1]){
return o1[1] - o2[1];
}else{
return o1[0] - o2[0];
}
}
}
D – 10867 ์ค๋ณต ๋นผ๊ณ ์ ๋ ฌํ๊ธฐ https://www.acmicpc.net/problem/10867
package baekjoon.part01_03;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import java.util.StringTokenizer;
public class Num10867_์ค๋ณต๋นผ๊ณ ์ ๋ ฌํ๊ธฐ {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
Set<Integer> set = new HashSet<>();
StringTokenizer st = new StringTokenizer(br.readLine());
for(int i=0; i<n; i++){
set.add(Integer.parseInt(st.nextToken(" ")));
}
Integer[] arr = set.toArray(new Integer[set.size()]);
Arrays.sort(arr);
for(int i=0; i<arr.length; i++){
System.out.print(arr[i] + " ");
}
}
}