programmers.co.kr/learn/courses/30/lessons/42586#

 

코딩테스트 연습 - 기능개발

프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는

programmers.co.kr

코드 설명

큐를 이용하여 100을 넘길시 pop시킨다 (cnt를 통해 while문이용)

 

progresses 인덱스와 speeds 인덱스를 각각 어떻게 매번 더해줄까 생각하다가 그냥 큐에있는것을 하나씩 빼서 더한후 다시 push해주는 방법을 이용하였다.(단순..)

 

IDE를 쓰지 않으려는 연습을 계속하다보니까 core dumped가 너무 자주 발생한다...설계를 정확히하고 짧은 구문마다 디버깅을 해보자 

 

 

이번에도 while(q.front()>100) 만하고 큐가 비어있는 상황을 위에서 if문으로 그냥 해버리니까 당연히 while문 내에서 큐가 비는 상황이 발생한다....조심하자!

코드

#include <string>
#include <vector>
#include <queue>
#include <iostream>
using namespace std;

vector<int> solution(vector<int> progresses, vector<int> speeds) {
    vector<int> answer;
    queue<int> q;
    for(int i=0;i<progresses.size();i++){
            q.push(progresses[i]);
            
        }
    
    while(1){
        int cnt=0;
        
        
        
    while(q.front()>=100 && !q.empty()){
        
            if(q.front()>=100) cnt++;
            q.pop();
            progresses.erase(progresses.begin());
            speeds.erase(speeds.begin());
            
        }
        
        
        
        
        for(int i=0;i<speeds.size();i++){
            int temp=q.front()+speeds[i];
            cout << q.front() << temp << endl;
            q.pop();
            q.push(temp);
        }
        
        
        if(cnt>0) answer.push_back(cnt);
        if(q.empty())break;
    }
    
    
    return answer;
}

'알고리즘 공부 > 프로그래머스' 카테고리의 다른 글

[프로그래머스] 더 맵게  (0) 2021.05.01
[프로그래머스] 프린터  (0) 2021.04.30
[프로그래머스] 타겟넘버  (0) 2021.04.27
[프로그래머스] 입국심사  (0) 2021.04.27
[프로그래머스] H-Index  (0) 2021.04.27

+ Recent posts