hahn

단계별로 풀어보기(정렬 - 좌표 정렬하기 2) 본문

코딩테스트 연습/백준(JAVA)

단계별로 풀어보기(정렬 - 좌표 정렬하기 2)

hahn 2021. 9. 19. 11:04
728x90
반응형

11651번: 좌표 정렬하기 2 (acmicpc.net)

 

11651번: 좌표 정렬하기 2

첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.

www.acmicpc.net

http://boj.kr/47cb2c665bf04285b6af20395077baff

 

공유 소스 보기

 

www.acmicpc.net

더보기
더보기
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.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

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));
		
		String[] strArr;
		
		int inputCount = Integer.parseInt(br.readLine());
		
		Map<Integer, ArrayList<Integer>> map = new HashMap<Integer, ArrayList<Integer>>();
		
		List<Integer> x;
		List<Integer> y;
		
		for(int i = 0; i < inputCount; i++) {
			
			strArr = br.readLine().split(" ");
			
			if(map.get(Integer.parseInt(strArr[1])) == null) map.put(Integer.parseInt(strArr[1]), new ArrayList<Integer>());
			map.get(Integer.parseInt(strArr[1])).add(Integer.parseInt(strArr[0]));
			
		}
		
		y = new ArrayList<Integer>(map.keySet());
		
		y.sort(Comparator.naturalOrder());
		
		
		for(int key : y) {
			
			x = map.get(key);
			
			x.sort(Comparator.naturalOrder());
			
			for(int i = 0; i < x.size(); i++) {
				
				bw.write(x.get(i) + " " + key + "\n");
				
			}
			
		}
		
		bw.close();
		

	}
    
}

 

좌표 정렬하기와 같은 방법으로 풀었다.

 

Botherahn :: 단계별로 풀어보기(정렬 - 좌표 정렬하기) (tistory.com)

 

단계별로 풀어보기(정렬 - 좌표 정렬하기)

11650번: 좌표 정렬하기 (acmicpc.net) 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100..

ahnstu.tistory.com

 

728x90
반응형