각 사람의 (몸무게, 키) 배열, 등수 배열, 등수를 세는 변수를 선언해줍니다.
int num[51]; // 등수 배열
pair<int, int> member[51]; // (몸무게, 키) 배열
pair<int, int>를 사용하면 몸무게 배열과 키 배열을 따로 선언해주지 않아도 됩니다.
변수에 접근은 첫 번째는 first, 두 번째는 second로 하면 됩니다.
pair<>가 익숙하지 않다면
typedef struct {
int weight;
int height;
} body;
body member[51];
이런식으로 구조체를 활용하는 것도 좋습니다.
이중 반복문을 사용하여 자신보다 덩치가 큰 사람이 얼마나 있는지 확인해주면 되는 문제입니다.
for (int index = 0; index < N; index++) {
count = 1; // 등수를 1로 지정, 자신보다 큰 경우가 없을 때는 1등
for (int index2 = 0; index2 < N; index2++) {
if (index == index2) continue;
// 비교 대상이 자신일 때 PASS
if (member[index2].first > member[index].first && member[index2].second > member[index].second) {
// 자신보다 몸무게, 키 보두 클 경우
count++;
// 등수를 1 추가
}
}
num[index] = count;
}
모든 조건문이 종료되면 등수 배열을 모두 출력해주면 됩니다.
for (int index = 0; index < N; index++) {
cout << num[index] << " ";
}
전체 코드
더보기
#include <iostream>
using namespace std;
int num[51];
pair<int, int> member[51];
int main(void) {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N, X, Y, count;
cin >> N;
for (int index = 0; index < N; index++) {
cin >> X >> Y;
member[index] = {X, Y};
}
for (int index = 0; index < N; index++) {
count = 1;
for (int index2 = 0; index2 < N; index2++) {
if (index == index2) continue;
if (member[index2].first > member[index].first && member[index2].second > member[index].second) {
count++;
}
}
num[index] = count;
}
for (int index = 0; index < N; index++) {
cout << num[index] << " ";
}
cout << "\n";
return 0;
}
'Koala - 2기 > A반' 카테고리의 다른 글
[14620 번] 꽃길 (0) | 2021.01.14 |
---|---|
[1051번] 숫자 정사각형 (0) | 2021.01.12 |
[2160번] 그림 비교 (0) | 2021.01.12 |
KOALA - A반 출석부 (0) | 2021.01.12 |
[3085번] 사탕 게임 (0) | 2021.01.11 |