728x90
문제
https://www.acmicpc.net/problem/7568
Brute Force를 사용하기 위해서 문제를 풀었다. 튜플 자료구조도 익힐겸 사용했다.
코드
using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
namespace dongsik
{
class Algorithm
{
static void Main(string[] str)
{
int cnt = int.Parse(Console.ReadLine()); // 5
// list[1] = (1, 1);
List<Tuple<int, int>> info = new List<Tuple<int, int>>();
int[] result = new int[cnt];
for(int i = 0; i < cnt; i++)
{
int[] temp = Array.ConvertAll(Console.ReadLine().Split(' '), int.Parse);
Tuple<int, int> tuple = new Tuple<int, int>(temp[0], temp[1]);
info.Add(tuple);
}
for(int i = 0; i < cnt; i++)
{
int count = 1;
for(int j = 0; j < cnt; j++)
{
if (info[i].Item1 < info[j].Item1 && info[i].Item2 < info[j].Item2)
{
count++;
}
}
result[i] = count;
}
foreach(int i in result)
{
Console.Write($"{i} ");
}
}
}
}
고민
처음엔 자료를 Dictionary에 담으려고 했는데, 키를 어떻게 가져올지 고민이 되서 튜플을 사용해서 리스트에 담았다.
A, B, C, D, E의 몸무게와 키가 제공됐을 때 어차피
A는 BCDE랑
B는 ACDE랑
C는 ABDE랑
... 계산을 해야한다.
어떻게 보면 나보다 큰 사람의 수만 세어주면 되는 것이니
ABCDE사이의 등수 계산에 서로의 등수가 크게 연관되지 않는다.
그래서 첫번째 for문은 ABCDE를 돌리고 두번째 포문도 ABCDE를 돌렸다.
'동식이 취업시키기 작전 > 코딩테스트' 카테고리의 다른 글
[백준] 1436 영화감독 숌(C#) (1) | 2024.01.29 |
---|---|
[백준] 1018 체스판 다시 칠하기(C#) (1) | 2024.01.29 |
[백준] 1224 스위치 켜고 끄기(C#) (0) | 2024.01.29 |
[백준] 1541 잃어버린 괄호(C#) (1) | 2024.01.26 |
[백준] 9461 파도반수열(C#) (0) | 2024.01.26 |