반응형
기본 셋팅
01 Queue<Tuple<int,int>> 생성
Tuple의 첫번째 요소에는 index값 두번째 요소에는 중요도를 담는다.
Queue<Tuple<int,int>> queue = new Queue<Tuple<int,int>>();
int[] input = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
for (int i = 0; i < N; i++)
{
queue.Enqueue(new Tuple<int, int>(i, input[i]));
}
02 input.Sort()
중요도를 오름차순으로 정렬한다.
Array.Sort(input);
03 하나씩 꺼내기
Tuple<int,int> firstitem = queue.Dequeue();
주요 알고리즘
01 만약 firstitem이 현재의 제일 큰 중요도와 같을 경우
현재 중요도는 그럼 dequeue됐으니까 다음번째로 큰 중요도를 비교시키기위해 num을 증가시킨다. 그리고 enqueue할 필요가 없으니까 continue되도록한다.
else if (firstitem.Item2.Equals(input[input.Length - 1 - num]))
{
count++;
num++;
continue;
}
02 만약 firstitem이 현재의 제일 큰 중요도와 같고 Item1이 M과 같은 경우
count를 증가시키고 이 값을 출력시킨 다음 반복문에서 빠져나오도록한다.
if (firstitem.Item2.Equals(input[input.Length - 1 - num]) && firstitem.Item1 == M)
{
count++;
Console.WriteLine(count);
break;
}
03 만약 firstItem이 현재의 제일 큰 중요도 중 제일 큰 애와 같지 않는 경우
다시 enqueue시켜 맨 뒤로 보낸다.
queue.Enqueue(firstitem);
코드 전문
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace baek2
{
class Program
{
public static void Main()
{
int n = int.Parse(Console.ReadLine());
while (n > 0)
{
string[] token = Console.ReadLine().Split();
int N = int.Parse(token[0]);
int M = int.Parse(token[1]);
Queue<Tuple<int,int>> queue = new Queue<Tuple<int,int>>();
int[] input = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
for (int i = 0; i < N; i++)
{
queue.Enqueue(new Tuple<int, int>(i, input[i]));
}
Array.Sort(input);
int count = 0;
int num = 0;
while (true)
{
Tuple<int,int> firstitem = queue.Dequeue();
if (firstitem.Item2.Equals(input[input.Length - 1 - num]) && firstitem.Item1 == M)
{
count++;
Console.WriteLine(count);
break;
}
else if (firstitem.Item2.Equals(input[input.Length - 1 - num]))
{
count++;
num++;
continue;
}
queue.Enqueue(firstitem);
}
n--;
}
}
}
}
반응형
'코딩테스트 준비 > 백준 C#' 카테고리의 다른 글
백준 C# - 14425 (0) | 2024.03.31 |
---|---|
백준 C# - 2108 +) 풀이 (1) | 2024.03.24 |
백준 C# - 11286 +) 눈물의 풀이 (2) | 2024.03.17 |
백준 C# - 1235 +) 풀이 (0) | 2024.03.13 |
백준 C# - 1987 (0) | 2024.03.12 |
댓글