CodingTest

[CodingTest] 백준 7568번

동그리담 2024. 4. 9. 11:21

들어가며.

코딩테스트 연습을 위해 백준 사이트를 이용하기로 결정했습니다.

백준을 선택한 이유로는 티어 시스템의 존재로 문제를 풀며 티어상승의 재미도 느낄 수 있고 문제 탭 안에

CLASS를 이용해 난이도 별로 정리돼어있기에 입문하기도 편했습니다.

5일차 개인적으로 문제를 풀며 Rank 실버5를 달성하며 앞으로 푼 문제들을 클래스가 아닌 블로그에 정리하는게 좋을 것 같다 생각하여 오늘부터 다른 공부와 코딩테스트를 병행하며 블로그에 정리하려 합니다. 

import java.util.*;

public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        LinkedHashMap<Human,Integer> map = new LinkedHashMap<>();
        int n = sc.nextInt();
        ArrayList<Human> humans = new ArrayList<>();
        int count;
        for (int i = 0; i < n; i++) {
            int kg=sc.nextInt();
            int cm=sc.nextInt();
            humans.add(new Human(kg,cm));
        }

        for (int i = 0; i < n; i++) {
            count=1;
            for (int j = 0; j < n; j++) {
                if(ranked(humans.get(i),humans.get(j)))
                    count++;

            }
            map.put(humans.get(i),count);
        }
        for(Map.Entry<Human,Integer> entry:map.entrySet()){
            System.out.print(entry.getValue()+" ");
        }

    }

    static class Human{
        private int cm;
        private int kg;

        public Human(int cm, int kg){
            this.cm = cm;
            this.kg = kg;
        }

        public int getCm() {
            return cm;
        }

        public int getKg() {
            return kg;
        }

        @Override
        public String toString() {
            return getKg() + " " + getCm();
        }
    }

    static boolean ranked(Human h1, Human h2){
        return h1.getCm()<h2.getCm()&&h1.getKg()<h2.getKg();
    }

}