백준 7568번 덩치

이상민·2023년 9월 4일
0

알고리즘

목록 보기
41/128
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

public class Big {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int N = Integer.parseInt(st.nextToken());
        List<int[]> list = new ArrayList<>();
        for (int i = 0; i < N; i++) {
            st = new StringTokenizer(br.readLine());
            int x = Integer.parseInt(st.nextToken());
            int y = Integer.parseInt(st.nextToken());
            list.add(new int[]{x,y});
        }
        //자신보다  더 큰 덩치의 사람 k명이면 덩치 등수는 k+1
        int len = list.size();
        for(int i =0 ; i<len; i++){
            int k = 0;
            for (int j = 0; j < len; j++) {
                if(i==j)
                    continue;
                if(list.get(i)[0]<list.get(j)[0]&&list.get(i)[1]<list.get(j)[1]){
                    k++;
                }
            }
            System.out.print(k+1+" ");
        }
    }
}

풀이방법

  1. int[]형 list에 키, 몸무게를 넣는다.
  2. 나보다 덩치 큰 사람이 있는지 찾는다.
  3. 덩치 큰사람이 k명이면 덩치등수 k+1을 출력한다.

후기

처음에 문제조건이 좀 말이 안된다생각 했었는데(사실 지금도 이해가 안된다)
일단 명확하게 아래처럼 지정해 줘서 그것만 보고 풀었다.

N명의 집단에서 각 사람의 덩치 등수는 자신보다 더 "큰 덩치"의 사람의 수로 정해진다. 만일 자신보다 더 큰 덩치의 사람이 k명이라면 그 사람의 덩치 등수는 k+1이 된다."

나는 int[]형 리스트에 담았는데 뭐,, 2차원 배열이나 해쉬맵? 키값 형태로도 될거 같기도 하고 쉬운 문제였다.

profile
개린이

0개의 댓글