[백준 30647] 점수 관리 [Java]

2025. 7. 23. 21:34PS 풀이/Baekjoon Online Judge

728x90

문제

http://boj.ma/30647

 

30647번: 점수 관리

 

boj.ma

 


풀이

문제 요약

참가자 중 점수, 이름 순으로 동점자를 고려해서 순위를 매긴 후 순위 공개를 선택한 참가자들의 목록만 출력하자.

아이디어

입력 데이터가 까다롭다. 정규표현식을 사용해 파싱 후 지문에서 요구하는 대로 구현하자.

String[] tokens = br.readLine().replaceAll("[\\\\[{\\"}\\\\]]", "").split(",");

입력받은 참가자 정보에 대해 점수, 이름 순으로 정렬 후 순위를 비공개한 참가자를 고려해서 순위를 기입하자.

class People implements Comparable<People> {
		.
		.
		.

    @Override
    public int compareTo(People o) {
        if (this.score != o.score) {
            return Integer.compare(o.score, this.score);
        }
        return this.name.compareTo(o.name);
    }
}
            // Solve
            String name = tokens[0].split(":")[1];
            int score = Integer.parseInt(tokens[1].split(":")[1]);
            int isHidden = Integer.parseInt(tokens[2].split(":")[1]);
            list.add(new People(name, score, isHidden));
        }

풀이시간

20분


소스코드

https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/easy/30647.java

 

problem-solving/baekjoon-online-judge/easy/30647.java at main · rogi-rogi/problem-solving

Daily Problem Solving Challenges. Contribute to rogi-rogi/problem-solving development by creating an account on GitHub.

github.com

 

728x90