지구정복

[브루트포스] 백준 - 덩치 본문

데이터 엔지니어링 정복/Algorithm

[브루트포스] 백준 - 덩치

nooh._.jl 2021. 7. 26. 19:35
728x90
반응형

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

 

7568번: 덩치

우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩

www.acmicpc.net

 

-문제해설

처음에 Arrays.sort 익명함수로 북치고 장구치다가 도저히 답이 안나와서 다른 사람 풀이 아이디어를 봤는데 너무 허망했다... 난 왜 항상 어렵게 풀려고 하는지 모르겠다 ㅎㅎ;

 

미리 sum = n이라는 변수를 지정한 다음

이중포문으로 하나의 값을 나머지 값들과 비교하면서 하나의 값이 나머지 값보다 크거나 같은 경우 sum-- 해주고

곧바로 출력하면 해결되는 문제였다.

 

말로 설명하는 재주가 없으니 코드로 바로 설명ㅎ

 

int sum = n;

stringbuffer sb = new stringbuffer();

for( i = 0~n ) 

    for( j = 0~n ) 

        if arr[i][0] >= arr[j][0] || arr[i][1] >= arr[j][1]

            sum--

    sb.append( sum + " " )

system.out.println( sb );

 

 

 

-자바

package bruteforce;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class BJ7568 {

	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt( br.readLine() );
		int[][] arr = new int[n][2];
		StringTokenizer st;
		
		for( int i=0; i<n; i++ ) {
			st = new StringTokenizer( br.readLine() );
			arr[i][0] = Integer.parseInt( st.nextToken() );
			arr[i][1] = Integer.parseInt( st.nextToken() );
		}
		
		StringBuffer sb = new StringBuffer();
		int sum;
		for( int i=0; i<n; i++ ) {
			sum = n;
			for( int j=0; j<n; j++ ) {
				if( i==j ) continue;				
				if( arr[i][0] >= arr[j][0] || arr[i][1] >= arr[j][1] ) sum--;
			}
			sb.append( sum + " " );
		}
		System.out.println( sb );
	}
}

 

 

-파이썬

n = int(input())
arr = []
for i in range( n ):
    arr.append( list( map(int, input().split() ) ) )
    
for i in range( n ):
    sum = n
    for j in range( n ):
        if i==j: continue
        if arr[i][0] >= arr[j][0] or arr[i][1] >= arr[j][1]: sum -= 1            
    print( sum, end=" ")

 

728x90
반응형
Comments