[백준,BOJ 7568] 덩치(JAVA 구현)
코테/백준 온라인 저지(BOJ)

[백준,BOJ 7568] 덩치(JAVA 구현)

반응형

-내 생각

  브루트 포스 분류로 된 문제로 간단하게 요약해보자면, n명의 사람에게 몸무게와 키를 입력받고 다른 사람과 비교하여 자신보다 몸무게와 키가 큰 사람의 수 +1 이 자신의 등수가 되며 이를 공백을 기준으로 출력하는 문제이다. 배열에 저장해 정렬 라이브러리를 사용하면 쉬울 수 있지만, 브루트 포스 방식으로 모든 경우의 수를 따지기 위해 모든 비교를 수행하고자 했다.

 

-해법

  모든 사람과 비교하기 위해 반복문 2개를 중첩하였고, 각 경우의 수를 비교하여 자신보다 덩치가 큰 사람이 나올 때 마다 카운트하여 비교가 끝났을 때 +1 하여 자신의 등수를 결정한다. 코드를 보자.

 

import java.util.*;

public class Main {
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int n = sc.nextInt(); // 사람 수 입력
		
		int arr[][] = new int[n][3]; // 사람 수 만큼 몸무게, 키, 등수 배열 생성
		
		for(int i=0;i<n;i++) { // 몸무게와 키만 입력
			arr[i][0]= sc.nextInt();
			arr[i][1]= sc.nextInt();
		}
		
		int cnt; // 카운트 변수
		for(int i=0;i<arr.length;i++) { //모든 사람을 기준으로 잡는 반복문
			cnt =0;
			for(int j=0;j<arr.length;j++) { // 기준으로 잡은 사람과 다시 모든 사람을 비교 반복
				if(arr[i][0]<arr[j][0] && arr[i][1]<arr[j][1]) { // 기준으로 삼은 사람보다 키와 몸무게가 큰 사람을 만나면 
					cnt++; //카운트 증가
				}
			}
			
			arr[i][2]=cnt+1; // 비교가 끝나면 카운트에+1 후 등수 배열에 저장
		}
		
		for(int i=0;i<arr.length;i++) { // output
			System.out.print(arr[i][2]+" ");
		}
	}
	
}

 

 

 

반응형