글
프로그래머스 레벨2 프린터 C#(큐, queue)
C#
using System;
using System.Collections.Generic;
using System.Linq;
public class Solution {
public int solution(int[] priorities, int location)
{
int answer = 0;
Queue<KeyValuePair<int, int>> que = new Queue<KeyValuePair<int, int>>();
for(int i = 0; i < priorities.Length; i++)
{
que.Enqueue(new KeyValuePair<int, int>(i, priorities[i]));
}
while(true)
{
int Max = que.Max(x=>x.Value);
var deque = que.Dequeue();
if (deque.Value == Max)
{
if (deque.Key == location) return answer + 1;
else
{
answer++;
continue;
}
}
que.Enqueue(deque);
}
}
}
// Enqueue가 push 같은 느낌이고
// Dequeue가 pop 같은 느낌이다.
// 큐는 FIFO 처음에 들어간 게 처음에 나간다는 개념이다.
using System;
using System.Collections.Generic;
using System.Linq;
public class Solution {
public int solution(int[] priorities, int location) {
int answer = 0;
Queue<int> que = new Queue<int>(Enumerable.Range(0, priorities.Length));
List<int> max = new List<int>(priorities);
while (que.Count > 0)
{
int document = que.Dequeue();
if (max.Max() <= priorities[document])
{
answer++;
max.Remove(priorities[document]);
if (document == location)
break;
}
else
que.Enqueue(document);
}
return answer;
}
}
'프로그래밍' 카테고리의 다른 글
프로그래머스 레벨1 둘만의 암호 C#, JAVA(아스키코드) (0) | 2023.03.26 |
---|---|
프로그래머스 레벨2 숫자 변환하기 C# (완전탐색) (0) | 2023.02.26 |
프로그래머스 레벨2 무인도 여행(JAVA) dfs (0) | 2023.02.26 |
프로그래머스 레벨1 문자열 나누기 C#(JAVA) (0) | 2023.02.24 |
프로그래머스 레벨1 카드 뭉치 C#(JAVA) string 배열 (0) | 2023.02.24 |