본문 바로가기
백준

[자바 :: 백준 11650 좌표 정렬하기]

by javaman 2022. 7. 30.

문제 풀이 시나리오

1. 람다식으로 오름차순 정렬

2. 출력

 

 

첫번째 풀이(Scanner)

package baekjoon;


import java.io.IOException;
import java.util.Arrays;
import java.util.Scanner;

public class Main {
	
	public static void main(String[] args) throws IOException{
		StringBuilder sb = new StringBuilder();
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		//2차원 배열
		int[][] answer = new int[n][2];
		
		
		for (int i = 0 ; i < n ;i++) {
			answer[i][0] = scan.nextInt();
			answer[i][1] = scan.nextInt();
			
		}
        //오름차순 정렬
        //람다식
		Arrays.sort(answer, (e1 , e2)-> {
			//x가 같으면 y으로 비교
			if(e1[0] == e2[0])
				return e1[1] - e2[1];
			return e1[0] - e2[0];
		});
		//BufferedWriter.write("매개변수가 문자열")
		for (int i = 0 ; i < n ;i ++) {
			sb.append(answer[i][0]+" "+answer[i][1]).append('\n');
			
		}
	
	System.out.println(sb);	
	
	}
}

두번째 풀이(BufferedReader)

package baekjoon;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.StringTokenizer;

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());
		//2차원 배열
		int[][] ans = new int[N][2];
		
		
		for (int i = 0 ; i < N ;i ++) {
			StringTokenizer st = new StringTokenizer(br.readLine());
			ans[i][0] = Integer.parseInt(st.nextToken());
			ans[i][1] = Integer.parseInt(st.nextToken());
			
		}
        //오름차순 정렬
        //람다식
		Arrays.sort(ans, (e1 , e2)-> {
			if(e1[0] == e2[0])
				return e1[1] - e2[1];
			return e1[0] - e2[0];
		});
		//BufferedWriter.write("매개변수->문자열")
		for (int i = 0 ; i < N ;i ++) {
			bw.write(ans[i][0] + " " + ans[i][1]);
			bw.newLine();
			
		}
		br.close();
		bw.close();
		
		
	
	}
}