01-25 15:41
Recent Posts
Recent Comments
관리 메뉴

miinsun

[BAEKJOON] λ°±μ€€ μ •λ ¬ 10825 :: ꡭ영수 JAVA λ³Έλ¬Έ

Algorithm/Baekjoon

[BAEKJOON] λ°±μ€€ μ •λ ¬ 10825 :: ꡭ영수 JAVA

miinsun 2022. 3. 14. 01:29

 

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

λ„ν˜„μ΄λ„€ 반 학생 Nλͺ…μ˜ 이름과 κ΅­μ–΄, μ˜μ–΄, μˆ˜ν•™ μ μˆ˜κ°€ 주어진닀.
μ΄λ•Œ, λ‹€μŒκ³Ό 같은 쑰건으둜 ν•™μƒμ˜ 성적을 μ •λ ¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

1. κ΅­μ–΄ μ μˆ˜κ°€ κ°μ†Œν•˜λŠ” μˆœμ„œλ‘œ
2. κ΅­μ–΄ μ μˆ˜κ°€ κ°™μœΌλ©΄ μ˜μ–΄ μ μˆ˜κ°€ μ¦κ°€ν•˜λŠ” μˆœμ„œλ‘œ
3. κ΅­μ–΄ μ μˆ˜μ™€ μ˜μ–΄ μ μˆ˜κ°€ κ°™μœΌλ©΄ μˆ˜ν•™ μ μˆ˜κ°€ κ°μ†Œν•˜λŠ” μˆœμ„œλ‘œ
4. λͺ¨λ“  μ μˆ˜κ°€ κ°™μœΌλ©΄ 이름이 사전 순으둜 μ¦κ°€ν•˜λŠ” μˆœμ„œλ‘œ
(단, μ•„μŠ€ν‚€ μ½”λ“œμ—μ„œ λŒ€λ¬ΈμžλŠ” μ†Œλ¬Έμžλ³΄λ‹€ μž‘μœΌλ―€λ‘œ μ‚¬μ „μˆœμœΌλ‘œ μ•žμ— μ˜¨λ‹€.)

 

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

μž…λ ₯ 

  • 첫째 쀄에 λ„ν˜„μ΄λ„€ 반의 ν•™μƒμ˜ 수 N (1 ≤ N ≤ 100,000)이 주어진닀.
  • λ‘˜μ§Έ 쀄뢀터 ν•œ 쀄에 ν•˜λ‚˜μ”© 각 ν•™μƒμ˜ 이름, κ΅­μ–΄, μ˜μ–΄, μˆ˜ν•™ μ μˆ˜κ°€ 곡백으둜 ꡬ뢄해 주어진닀.
  • μ μˆ˜λŠ” 1보닀 ν¬κ±°λ‚˜ κ°™κ³ , 100보닀 μž‘κ±°λ‚˜ 같은 μžμ—°μˆ˜μ΄λ‹€.
  • 이름은 μ•ŒνŒŒλ²³ λŒ€μ†Œλ¬Έμžλ‘œ 이루어진 λ¬Έμžμ—΄μ΄κ³ , κΈΈμ΄λŠ” 10자리λ₯Ό λ„˜μ§€ μ•ŠλŠ”λ‹€.

 

좜λ ₯

  • λ¬Έμ œμ— λ‚˜μ™€μžˆλŠ” μ •λ ¬ κΈ°μ€€μœΌλ‘œ μ •λ ¬ν•œ ν›„ 첫째 쀄뢀터 N개의 쀄에 걸쳐 각 ν•™μƒμ˜ 이름을 좜λ ₯ν•œλ‹€.

 

예제 μž…λ ₯ 1)

12
Junkyu 50 60 100
Sangkeun 80 60 50
Sunyoung 80 70 100
Soong 50 60 90
Haebin 50 60 100
Kangsoo 60 80 100
Donghyuk 80 60 100
Sei 70 70 70
Wonseob 70 70 90
Sanghyun 70 70 80
nsj 80 80 80
Taewhan 50 60 90

 

예제 좜λ ₯ 1)

Donghyuk
Sangkeun
Sunyoung
nsj
Wonseob
Sanghyun
Sei
Kangsoo
Haebin
Junkyu
Soong
Taewhan

 

​

πŸ’»  Main.java

  • Score Classλ₯Ό λ§Œλ“€μ–΄ 학생 정보λ₯Ό μ €μž₯ν•œλ‹€.
  • κ΅­μ–΄λŠ” λ‚΄λ¦Όμ°¨μˆœ, μ˜μ–΄λŠ” μ˜€λ¦„μ°¨μˆœ, μˆ˜ν•™μ€ λ‚΄λ¦Όμ°¨μˆœ, 이름은 μ˜€λ¦„μ°¨μˆœμœΌλ‘œ μ •λ ¬ν•œλ‹€.
  • 이름 비ꡐ 같은 κ²½μš°μ—λŠ” String.compareTo()λ©”μ„œλ“œλ₯Ό μ΄μš©ν•œλ‹€.
/* λ°±μ€€ μ •λ ¬ - 10825 :: ꡭ영수 */
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

class Score implements Comparable<Score>{
	public int korean, english, math;
	public String name;
	
	Score(int korean, int english, int math, String name){
		this.korean = korean;
		this.english = english;
		this.math = math;
		this.name = name;
	}
	
	@Override
	public int compareTo(Score o) {
		if(this.korean  == o.korean) {
			if(this.english == o.english) {
				if(this.math == o.math) {
					return this.name.compareTo(o.name);
				}
				return o.math - this.math;
			}
			return this.english - o.english;
		}
		return o.korean - this.korean;
	}
}

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