본문 바로가기

Algorithm/Brute-force

[C++] 백준 7568번 : 덩치 (S5)

#문제

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

 

7568번: 덩치

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

www.acmicpc.net

#풀이

따로 등수를 저장할 배열을 선언해야겠다는 생각을 하는 것이 중요한 문제다. 그리고 각 사람에 대해 그 사람을 제외한 모든 사람과 비교를 해야 하는데, 이는 2중 for문을 이용한다. 본인이 본인과 비교를 하는 경우는 부등호에 등호를 제외시킴으로써 간단하게 제외시킬 수 있다. 그리고 항상 개수를 세는 변수는 for문 앞에서 0으로 초기화해주는 것 잊지 말자.

#소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include<iostream>
using namespace std;
 
int main(void)
{
    int arr[51][2];//몸무게와 키를 저장할 배열
    int check[51];//등수를 저장할 배열
    int cnt;//덩치 큰 사람을 count할 변수
 
    int N;
    cin >> N;
 
    for (int i = 0; i < N; i++) {
        cin >> arr[i][0>> arr[i][1];
    }
 
    for (int i = 0; i < N; i++) {
        cnt = 0;
        for (int j = 0; j < N; j++) {
            if (arr[i][0< arr[j][0&& arr[i][1< arr[j][1])
                cnt++;
        }
        check[i] = cnt+1;
    }
 
    for (int i = 0; i < N-1; i++) {
        cout << check[i] << ' ';
    }
    cout << check[N - 1];
 
}
cs