안녕하세요.
백준 7568번 '덩치' 문제풀이를 진행해보도록 하겠습니다.
해당 문제는 키와 몸무게를 비교했을때 둘다 비교대상에 비해 높다면 등급을 1 올리며 최종 모든 사람의 등급을 출력하는 문제입니다.
입력예제
5
55 185
58 183
88 186
60 175
46 155
출력예제
2 2 1 2 5 // 등급
우선, 사람의 수(N)를 입력으로 받아옵니다.
다음줄에 사람 몸무게와 키를 담을 List를 선언해줍니다.
int N = int.Parse(Console.ReadLine());
List<(int weight, int height)> people = new List<(int weight, int height)>();
입력으로 사람들의 몸무게와 키를 담아와 people List에 저장해줍니다.
for (int i = 0; i < N; i++)
{
int[] input = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
people.Add((input[0],input[1]));
}
for 반복문으로 모든 사람들을 돌아보며 자신보다 키와 몸무게가 큰 사람 발견할 시 자신의 등급에 1을 더하고, 등급을 구했으면 나의 등급을 출력해줍니다. 이걸 N번 반복합니다. (i == x 는 자기 자신이므로 건너뜀)
이제 정답이 모두 출력됩니다 🏆
for (int i = 0; i <N; i++)
{
int rank = 1;
for (int x = 0; x < N; x++)
{
if (i == x)
continue;
if (people[x].height > people[i].height && people[x].weight> people[i].weight)
{
rank++;
}
}
Console.Write(rank + " ");
}
다음은 전체코드입니다.
전체코드
using System;
class Program
{
static void Main()
{
int N = int.Parse(Console.ReadLine());
List<(int weight, int height)> people = new List<(int weight, int height)>();
for (int i = 0; i < N; i++)
{
int[] input = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
people.Add((input[0],input[1]));
}
for (int i = 0; i <N; i++)
{
int rank = 1;
for (int x = 0; x < N; x++)
{
if (i == x)
continue;
if (people[x].height > people[i].height && people[x].weight> people[i].weight)
{
rank++;
}
}
Console.Write(rank + " ");
}
}
}
'알고리즘 풀이' 카테고리의 다른 글
| [C#] 백준 2920번 문제풀이 (1) | 2025.08.11 |
|---|---|
| [C#] 백준 1018번 문제풀이 (1) | 2025.07.30 |
| [C#] 백준 1676번 문제풀이 (1) | 2025.07.28 |
| [C#] 백준 10773번 문제풀이 (2) | 2025.07.27 |
| [C#] 백준 1260번 문제풀이 (4) | 2025.07.26 |