* ๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/42586
* ํด๊ฒฐ๋ฒ
progresse(ํ์ฌ ์งํ ์ํ)์ speed(ํ๋ฃจ๋น ์ฒ๋ฆฌ๊ฐ๋ฅ ๊ฐ)์ ์ฃผ๋ฏ๋ก progress[i] += speed[i] ํ๋ฉฐ ๋ฐ๋ณต๋ฌธ์ ์งํํ๋ค.
progress์ ๋งจ ์๊ฐ์ด 100์ด๋ฉด ๋ฐฐํฌ๋ฅผ ์งํํด์ผํ๋ฏ๋ก progresses, speeds ๋ฐฐ์ด์์ ๊บผ๋ด๊ณ ๊บผ๋ธ ๊ฐ์๋ฅผ ์์ answer ๋ฒกํฐ์ ๋ฃ๋๋ค. progresses ๋ฒกํฐ๋ฅผ ๋ชจ๋ ๋ฐฐํฌํ๋ฉด(empty์ํ) answer ๋ฒกํฐ๋ฅผ ์ถ๋ ฅํ๋ค.
* ์์๋ ๊ฒ
- ๋ฒกํฐ์ ๋งจ ์ ์์ ๋นผ๋ ๋ฒ.
v.erase(v.begin());
๋ฒกํฐ๋ ์๋ stack์ฒ๋ผ ๋งจ ๋ ์์๋ฅผ pop()์ผ๋ก ๋นผ๋ ์๋ฃ๊ตฌ์กฐ์ธ๋ฐ, queue์ฒ๋ผ ๋งจ ์ ์์๋ฅผ ๋บ ์ ์๋ค.
์ ์ฝ๋์ฒ๋ผ eraseํจ์์ ๋ฒกํฐ์ ๋งจ ์์ ์์๊ฐ์ ์ฃผ๋ฉด ๋๋ค.
- queue ์ฝ๋
[์ ์ธ ๋ฐฉ๋ฒ]
#include<queue>
queue<int> q;
[ํจ์]
q.push(element); // ๊ฐ ์ถ๊ฐ
q.pop(); // front()๊ฐ ์ ๊ฑฐ
q.front(); // ๋งจ ์ ๊ฐ ๋ฐํ
q.back(); // ๋งจ ๋ง์ง๋ง ๊ฐ ๋ฐํ
q.size(); // queue ์ฌ์ด์ฆ ๋ฐํ
q.empty() // ๋น์๋์ง ํ์ธ
swap(q1 , q2); // q1๊ณผ q2 ๋ด์ฉ ๋ฐ๊พธ๊ธฐ
* ์ฝ๋
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> progresses, vector<int> speeds) {
vector<int> answer;
//๋ชจ๋ ์์
์ด ์๋ฃ๋ ๋๊น์ง ๋ฐ๋ณต
while(!progresses.empty()){
//์๋ฃ๋ ์์ ์์
๋ ๋ํ๊ธฐ
for(int i = 0; i < progresses.size(); i++){
progresses[i] += speeds[i];
}
//๋งจ ์์ progress๊ฐ 100๋๊ฑฐ ์น ๋นผ๊ธฐ
int count = 0;
while(!progresses.empty() && progresses.front() >= 100){
count++;
progresses.erase(progresses.begin());
speeds.erase(speeds.begin());
}
if(count != 0) answer.push_back(count);
}
return answer;
}
'๐ Coding Test Study > Algorithm Problem' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++][Programmers][์คํ/ํ] ์ฃผ์๊ฐ๊ฒฉ (0) | 2023.06.04 |
---|---|
[C++][Programmers][์คํ/ํ] ํ๋ก์ธ์ค (0) | 2023.06.04 |
[C++][Programmers][์คํ/ํ] ๊ฐ์ ์ซ์๋ ์ซ์ด (0) | 2023.05.18 |
[C++][Programmers][ํด์] ์์ (feat. hash map ๋ฐ๋ณต๋ฌธ) (0) | 2023.05.16 |
[C++][Programmers][ํด์] ํฌ์ผ๋ชฌ (0) | 2023.05.15 |