BOJ 1900 레슬러

1 minute read

  1. 변수

    int N  // 선수의 수
    class Wrestler{
        int num   		// 선수번호
        int power 		// 선수의 힘
    	int ring  		// 마술링의 힘
    	int winPoint	// 이긴 횟수
    }
       
    Wrestler[N] list // 레슬러의 정보를 갖고 있는 배열
           
    
  2. 구현로직

    1. 각자의 이긴횟수 구하고 내림차순 정렬

    2. 이긴횟수가 같을때 ? 는 없는것 같다…

  3. 코드

    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);
    		}
    	}
    }
       
    
  4. 느낀점

    • 처음에 어떤 변수가 필요할지 충분히 고민해보기!

    • 정렬알고리즘 다시 공부!!

      image

      image

Leave a comment