BOJ 1900 레슬러
-
변수
int N // 선수의 수 class Wrestler{ int num // 선수번호 int power // 선수의 힘 int ring // 마술링의 힘 int winPoint // 이긴 횟수 } Wrestler[N] list // 레슬러의 정보를 갖고 있는 배열
-
구현로직
-
각자의 이긴횟수 구하고 내림차순 정렬
-
이긴횟수가 같을때 ? 는 없는것 같다…
-
-
코드
package baekjoon.Silver; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; import java.util.Collections; import java.util.StringTokenizer; class Wrestler implements Comparable<Wrestler> { int num, power, ring, winPoint; public Wrestler(int num, int power, int ring, int winPoint) { super(); this.num = num; this.power = power; this.ring = ring; this.winPoint = winPoint; } @Override public int compareTo(Wrestler o) { return this.winPoint - o.winPoint; } } public class BOJ_1900_레슬러 { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); Wrestler[] list = new Wrestler[N]; for (int tc = 0; tc < N; tc++) { StringTokenizer st = new StringTokenizer(br.readLine()); int p = Integer.parseInt(st.nextToken()); int r = Integer.parseInt(st.nextToken()); list[tc] = new Wrestler(tc + 1, p, r, 0); } for (int i = 0; i < N - 1; i++) { for (int j = i + 1; j < N; j++) { Wrestler first = list[i]; Wrestler second = list[j]; if (first.power + (first.ring * second.power) > second.power + (second.ring * first.power)) { list[i].winPoint += 1; } else { list[j].winPoint += 1; } } } Arrays.sort(list, Collections.reverseOrder()); for (int i = 0; i < N; i++) { System.out.println(list[i].num); } } }
-
느낀점
-
처음에 어떤 변수가 필요할지 충분히 고민해보기!
-
정렬알고리즘 다시 공부!!
-
Leave a comment