[백준] 7568번: 덩치 (Java)

seri·2024년 6월 29일
0

코딩테스트 챌린지

목록 보기
6/62

문제: https://www.acmicpc.net/problem/7568

📌 문제 탐색하기

입력 : 첫째 줄 - 전체 사람의 수 N (2 ≤ N ≤ 50)
둘째 줄부터 - 각 사람의 몸무게(x) 키(y) (10 ≤ x, y ≤ 200)
출력 : 덩치 등수 순서대로 출력

가능한 시간복잡도

O(N^2)

알고리즘 선택

완전탐색

📌 코드 설계하기

  1. 첫째 줄에 전체 사람의 수 N를 Input으로 받는다.
  2. 둘째 줄부터 각 사람의 몸무게 x와 키 y를 공백을 두고 Input으로 받아 2차원 배열에 저장한다. 단, 모든 배열 인덱스[2]에 초기 덩치 등수를 1로 저장한다.
  3. 완전탐색을 이용해 본인보다 덩치가 큰 사람이 존재한다면 덩치 등수를 1씩 증가시킨다.
  4. 각 사람의 덩치 등수를 첫 줄에 공백을 두고 출력한다.

📌 시도 회차 수정 사항 (Optional)

💡 시도별 수정 사항은 어떻게 작성하나요?
- 무문별하게 “맞았습니다”가 나올때 까지 수정하는 형태의 문제 풀이를 반복하면 , 내가 어떤 실수를 해서 해당 문제를 틀렸는지 모르게 됩니다.
- 틀렸습니다를 받았다면 왜 틀렸는지 고민해보고 , 어떻게 수정할 수 있는지 고민하는 과정을 작성해주시면 됩니다.
- 위에 내가 세울 설계에서 어떤 부분이 틀렸는지도 함께 점검해보세요
- 한번에 맞출수도 있기 때문에 이 칸은 Optional입니다.

1회차

2회차

📌 정답 코드

import java.util.*;

public class Main {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int[][] people = new int[N][3];
        
        for (int i = 0; i < N; i++) {
            people[i][0] = sc.nextInt(); //몸무게
            people[i][1] = sc.nextInt(); //키
            people[i][2] = 1; //덩치 등수 초기값
        }
        
         for (int i = 0; i < N; i++) {
             for (int j = 0; j < N; j++) {
                 if (i != j && people[i][0] < people[j][0]
                     && people[i][1] < people[j][1]) {
                     people[i][2]++;
                 }
             }
         }
        
        for (int i = 0; i < N; i++) {
            System.out.print(people[i][2] + " ");
        }
    }
}
profile
꾸준히 정진하며 나아가기

0개의 댓글