[백준 7568] 덩치

2024. 2. 7. 16:41코딩테스트/백준

문제

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

 

7568번: 덩치

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

www.acmicpc.net

코드

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
typedef struct person {
	int height, weight, num;
}person;
int dungchi(person* p, int n, int me)
{
	int sum = 0;

	// 자신보다 덩치가 큰 사람의 개수
	for (int i = 0; i < n; i++) {
		if (i == me)
			continue;

		if (p[i].height > p[me].height && p[i].weight > p[me].weight)
			sum++;
	}
	
	return sum + 1;
}
int main(void)
{
	int n, smallest = 201;
	scanf("%d", &n);

	person* p = (person*)malloc(sizeof(person) * n);

	for (int i = 0; i < n; i++) {
		scanf("%d %d", &p[i].weight, &p[i].height);
	}

	for (int i = 0; i < n; i++) {
		p[i].num = dungchi(p, n, i);
	}

	for (int i = 0; i < n; i++) {
		printf("%d ", p[i].num);
	}

	free(p);
	return 0;
}

주의할 점

나보다 덩치가 큰 사람을 그냥 노가다로 세어도 됐는데, 이해를 잘못해서 나혼자 어렵게 풀고 있었다.

교과서 수준의 문제였는데, 스스로 블랙라벨 난이도라 생각해서 어렵게 문제를 이해했던 것 같다.

문제를 이해하고, 알고리즘을 잘 짜는게 문제푸는 시간을 아끼는 가장 중요한 방법같다.

 

혼자 헛짓거리 함..