반응형
문제
https://www.acmicpc.net/problem/7568
7568번: 덩치
우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩
www.acmicpc.net
풀이
1. 데이터를 어떻게 관리해야할지.
2. 덩치들끼리 어떻게 비교를 해야할지
3. 순위를 어떻게 구별을 하고 덩치에게 순위를 넣을지
소스코드
#include <stdio.h>
// 데이터를 저장할 구조체
typedef struct struct_weight
{
int kg;
int height;
int rank;
}WT;
int main(void)
{
WT array[50]; // 덩치 데이터를 입력받을 구조체 배열
int length = 0; // 덩치 수
scanf("%d", &length);
// 덩치들의 (몸무게, 키)를 입력한다.
for(int i =0; i < length; i++)
{
scanf("%d %d", &array[i].kg, &array[i].height);
}
// 첫 번째 덩치부터 N번째 덩치까지 다른 덩치들과 비교한다.
for(int i = 0; i < length; i++)
{
// 처음 순위는 1로 설정하고 다른 덩치들과 비교할때마다 나보다
// 몸무게, 키 둘다 높다면 순위가 높다는 뜻이기떄문에 + 1를 해준다.
int rank = 1;
for(int j = 0; j < length; j++)
{
if(array[i].kg < array[j].kg && array[i].height < array[j].height)
{
rank++;
}
}
// 순위 설정이 끝나면 해당 구조체에 순위 값을 넣어준다.
array[i].rank = rank;
}
// 순위를 출력한다.
for(int i = 0; i < length; i++)
{
printf("%d ", array[i].rank);
}
return 0;
}
반응형
'프로그래밍 > 백준(BOJ)' 카테고리의 다른 글
[백준(BOJ) / C][Silver Ⅳ] 9012번 : 괄호 (1) | 2024.01.03 |
---|---|
[백준(BOJ) / C][Silver Ⅴ] 25644번 : 최대 상승 (0) | 2024.01.03 |
[백준(BOJ) / C][Bronze Ⅱ] 1152번 : 단어의 개수 (1) | 2024.01.03 |
[백준(BOJ) / C][Silver Ⅳ] 1158번 : 요세푸스 문제 (1) | 2024.01.02 |
[백준(BOJ) / C][Bronze I] 1032번 : 명령 프롬포트 (1) | 2023.12.31 |