복잡하게 생각할수록 잘 안풀리는 문제다.
public static class PS
{
private static readonly int n;
private static (int weight, int height)[] list;
private static int[] rank;
static PS()
{
n = int.Parse(Console.ReadLine());
list = new (int, int)[n];
rank = new int[n];
}
public static void Main()
{
MakeList();
for (int i = 0; i < n; i++)
{
rank[i] = 1;
for (int j = 0; j < n; j++)
{
if (i == j)
continue;
if (list[i].weight < list[j].weight && list[i].height < list[j].height)
rank[i]++;
}
}
Console.Write(String.Join(' ', rank));
}
private static void MakeList()
{
string[] person;
for (int i = 0; i < n; i++)
{
person = Console.ReadLine().Split();
list[i] = (int.Parse(person[0]), int.Parse(person[1]));
}
}
}
1명과 n - 1명의 비교를 계속 반복한다. 등수는 1에서 시작한다.
등수에 영향을 주는 경우는 딱 하나다. 키와 몸무게가 비교 대상보다 모두 작을 때다.
그 외에는 영향을 주지 않는다. 그냥 저 경우만 체크해도 알아서 자기 등수를 찾아갈 것이다.
복잡하게 생각할 필요가 없는 문제였다.
'백준 > 단계별' 카테고리의 다른 글
백준 1436 C#) 영화감독 숌 (0) | 2022.05.28 |
---|---|
백준 1018 C#) 체스판 다시 칠하기 (0) | 2022.05.27 |
백준 2231 C#) 분해합 (0) | 2022.05.24 |
백준 2798 C#) 블랙잭 (0) | 2022.05.24 |
백준 11729 C#) 하노이 탑 이동 순서 (0) | 2022.05.19 |
댓글