01-10 13:07
Recent Posts
Recent Comments
관리 메뉴

miinsun

[BAEKJOON] λ°±μ€€ μ •λ ¬ 10814 :: λ‚˜μ΄μˆœ μ •λ ¬ JAVA λ³Έλ¬Έ

Algorithm/Baekjoon

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

miinsun 2022. 3. 14. 00:58

πŸ’¬  문제 μ„€λͺ…

온라인 저지에 κ°€μž…ν•œ μ‚¬λžŒλ“€μ˜ λ‚˜μ΄μ™€ 이름이 κ°€μž…ν•œ μˆœμ„œλŒ€λ‘œ 주어진닀.

μ΄λ•Œ, νšŒμ›λ“€μ„ λ‚˜μ΄κ°€ μ¦κ°€ν•˜λŠ” 순으둜, λ‚˜μ΄κ°€ κ°™μœΌλ©΄ λ¨Όμ € κ°€μž…ν•œ μ‚¬λžŒμ΄ μ•žμ— μ˜€λŠ” μˆœμ„œλ‘œ μ •λ ¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

 

πŸ”¨  μž…μΆœλ ₯ 예

μž…λ ₯ 

  • 첫째 쀄에 온라인 저지 νšŒμ›μ˜ 수 N이 주어진닀. (1 ≤ N ≤ 100,000)
  • λ‘˜μ§Έ 쀄뢀터 N개의 μ€„μ—λŠ” 각 νšŒμ›μ˜ λ‚˜μ΄μ™€ 이름이 곡백으둜 κ΅¬λΆ„λ˜μ–΄ 주어진닀.
  • λ‚˜μ΄λŠ” 1보닀 ν¬κ±°λ‚˜ κ°™μœΌλ©°, 200보닀 μž‘κ±°λ‚˜ 같은 μ •μˆ˜μ΄κ³ , 이름은 μ•ŒνŒŒλ²³ λŒ€μ†Œλ¬Έμžλ‘œ 이루어져 있고, 길이가 100보닀 μž‘κ±°λ‚˜ 같은 λ¬Έμžμ—΄μ΄λ‹€.
  • μž…λ ₯은 κ°€μž…ν•œ μˆœμ„œλ‘œ 주어진닀.

 

좜λ ₯

  • 첫째 쀄뢀터 총 N개의 쀄에 걸쳐 온라인 저지 νšŒμ›μ„ λ‚˜μ΄ 순, λ‚˜μ΄κ°€ κ°™μœΌλ©΄ κ°€μž…ν•œ 순으둜 ν•œ 쀄에 ν•œ λͺ…μ”© λ‚˜μ΄μ™€ 이름을 곡백으둜 ꡬ뢄해 좜λ ₯ν•œλ‹€.

 

예제 μž…λ ₯ 1)

3
21 Junkyu
21 Dohyun
20 Sunyoung

 

예제 좜λ ₯ 1)

20 Sunyoung
21 Junkyu
21 Dohyun

 

 

​

πŸ’»  Main.java

  • μ•„λž˜ κ²Œμ‹œκΈ€κ³Ό μœ μ‚¬ν•œ 문제
  • Comparable μΈν„°νŽ˜μ΄μŠ€λ₯Ό 상속받아 compareTo ν•¨μˆ˜λ₯Ό μ •μ˜ν•΄μ€€λ‹€.
  • Collections.sort λ©”μ„œλ“œλ₯Ό μ΄μš©ν•΄ μ •λ ¬ν•œλ‹€.
 

[Algorithm]μ•Œκ³ λ¦¬μ¦˜ μžλ°”_49 μ’Œν‘œ μ •λ ¬

πŸ’¬ λ¬Έμ œ μ„€λͺ… N개의 ν‰λ©΄μƒμ˜ μ’Œν‘œ(x, y)κ°€ 주어지면 λͺ¨λ“  μ’Œν‘œλ₯Ό μ˜€λ¦„μ°¨μˆœμœΌλ‘œ μ •λ ¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ„Έμš”. 정렬기쀀은 λ¨Όμ € xκ°’μ˜ μ˜ν•΄μ„œ μ •λ ¬ν•˜κ³ , x값이 같을 경우 y값에 μ˜ν•΄ μ •λ ¬ν•©λ‹ˆ

miinsun.tistory.com

/* λ°±μ€€ μ •λ ¬ - 10814 :: λ‚˜μ΄μˆœ μ •λ ¬ */
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

class Person implements Comparable<Person>{
	public int age, order;
	public String name;
	
	Person(int age, int order, String name){
		this.age = age;
		this.order = order;
		this.name = name;
	}
	
	@Override
	public int compareTo(Person o) {
		if(this.age  == o.age) return this.order - o.order;
		return this.age - o.age;
	}
}

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		
		ArrayList<Person> arr = new ArrayList<Person>();
		
		for(int i = 0; i < n; i++) {
			int age = sc.nextInt();
			String name = sc.next();
			arr.add(new Person(age, i + 1, name));
		}
		
		Collections.sort(arr);
		
		for(Person p : arr) {
			System.out.println(p.age + " " + p.name);
		}
		
		sc.close();
	}
}
Comments