공부/C#

[C#] 프로그래머스 스택/큐 - 기능개발

굴러다니다니 2025. 3. 9. 16:56
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/42586

using System;
using System.Collections.Generic;

public class Solution {
    public int[] solution(int[] progresses, int[] speeds) {
        Queue<int> ans = new Queue<int>();
        int[] cal = new int[speeds.Length];
        for(int i= 0; i < speeds.Length; i++){
            if (((100 - progresses[i]) % speeds[i]) == 0){
                cal[i] = (100-progresses[i]) / speeds[i];
            }
            else {
                cal[i] = (100-progresses[i]) / speeds[i] + 1;
            }
        }
        int current = 0;
        int amount = 0;
        for (int i =0 ; i < progresses.Length; i++){
            if (current < cal[i]) {
                if (amount!=0){
                    ans.Enqueue(amount);
                    amount = 0;
                }
                amount++;
                current = cal[i];
            }
            else {
                amount++;
            }
        }
        ans.Enqueue(amount);
        
        int[] answer = new int[ans.Count];
        int j = ans.Count;
        for(int i = 0; i < j; i++){
            answer[i] = ans.Dequeue();
        }
        
        
        return answer;
    }
}
728x90