λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Algorithm

[λ°±μ€€] 10814번: λ‚˜μ΄μˆœ μ •λ ¬

by 주발2 2020. 1. 20.
λ°˜μ‘ν˜•

https://www.acmicpc.net/problem/10814

 

10814번: λ‚˜μ΄μˆœ μ •λ ¬

온라인 저지에 κ°€μž…ν•œ μ‚¬λžŒλ“€μ˜ λ‚˜μ΄μ™€ 이름이 κ°€μž…ν•œ μˆœμ„œλŒ€λ‘œ 주어진닀. μ΄λ•Œ, νšŒμ›λ“€μ„ λ‚˜μ΄κ°€ μ¦κ°€ν•˜λŠ” 순으둜, λ‚˜μ΄κ°€ κ°™μœΌλ©΄ λ¨Όμ € κ°€μž…ν•œ μ‚¬λžŒμ΄ μ•žμ— μ˜€λŠ” μˆœμ„œλ‘œ μ •λ ¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

www.acmicpc.net

 

μ½”λ“œ

import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		// 1)
		int N = scan.nextInt();
		String[][] sArr = new String[N][2];	
		
		for(int i=0; i<N; i++) {
			sArr[i][0] = scan.next();	// λ‚˜μ΄
			sArr[i][1] = scan.next();	// 이름
		}
		
		// 2)
		Arrays.sort(sArr, new Comparator<String[]>() {

			@Override
			public int compare(String[] a, String[] b) {
				return Integer.compare(Integer.parseInt(a[0]), Integer.parseInt(b[0]));
			}
		});
		
		for(int i=0; i<N; i++)
			System.out.println(sArr[i][0] + " " + sArr[i][1]);
		
		scan.close();
	}

}

 

풀이

HashMap 을 μ΄μš©ν•΄ ν’€λ €κ³  ν–ˆμ§€λ§Œ 아직 μ‚¬μš©ν•΄λ³Έμ μ΄ μ—†κ³  곡뢀λ₯Ό ν•˜μ§€λ„ μ•Šμ•„μ„œ λͺ»ν’€μ—ˆλ‹€ ...

2차원 배열에 각각 λ‚˜μ΄, 이름을 μž…λ ₯λ°›κ³  ν’€μ—ˆλ‹€.

 

// 1)

λ¨Όμ € λ‚˜μ΄, 이름을 μž…λ ₯받을 Stringν˜• 2차원 배열을 μ„ μ–Έν•˜κ³  μž…λ ₯λ°›λŠ”λ‹€.

0번째 => λ‚˜μ΄, 1번째 => 이름을 μž…λ ₯λ°›λŠ”λ‹€.

 

// 2)

ComparatorμΈν„°νŽ˜μ΄μŠ€λ₯Ό 톡해 String ν˜•μ˜ λ‚˜μ΄λ₯Ό Integer둜 ν˜•λ³€ν™˜ ν•œ ν›„ μ˜€λ¦„μ°¨μˆœμœΌλ‘œ μ •λ ¬ν•©λ‹ˆλ‹€.

 

μ°Έκ³  -> ComparatorμΈν„°νŽ˜μ΄μŠ€<- μ°Έκ³ 

 

λ°˜μ‘ν˜•

λŒ“κΈ€