๋ฌธ์ ๋งํฌ
https://programmers.co.kr/learn/courses/30/lessons/42586
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ๊ธฐ๋ฅ๊ฐ๋ฐ
ํ๋ก๊ทธ๋๋จธ์ค ํ์์๋ ๊ธฐ๋ฅ ๊ฐ์ ์์ ์ ์ํ ์ค์ ๋๋ค. ๊ฐ ๊ธฐ๋ฅ์ ์ง๋๊ฐ 100%์ผ ๋ ์๋น์ค์ ๋ฐ์ํ ์ ์์ต๋๋ค. ๋, ๊ฐ ๊ธฐ๋ฅ์ ๊ฐ๋ฐ์๋๋ ๋ชจ๋ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ค์ ์๋ ๊ธฐ๋ฅ์ด ์์ ์๋
programmers.co.kr
๋ฐฐํฌ๋์ด์ผํ๋ ์์๋๋ก ํ์ฌ ์์ ์ ์ง๋๊ฐ ์ ํ ๋ฐฐ์ด๊ณผ, ๊ฐ๋ฐ ์๋๊ฐ ์ ํ ๋ฐฐ์ด์ด ์ฃผ์ด์ก์ ๋
๊ฐ ๋ฐฐํฌ๋ ๋ช ๊ฐ์ ๊ธฐ๋ฅ์ด ๋ฐฐํฌ๋๋์ง ๋ฆฌํดํ๋ ๋ฌธ์ .
ํ์ด
- ํ์ด ์๊ณ ๋ฆฌ์ฆ
๋ฐฐํฌ ๋์ด์ผํ๋ ์์๋๋ก ๋ฐฐ์ด์ด ์ฃผ์ด์ก๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด์ 0๋ฒ์งธ ๊ธฐ๋ฅ์ ์ฒ์์ผ๋ก ์ธ๋ฑ์ค๋ฅผ ํ๋ํ๋ ๋๋ ค๊ฐ๋ฉด์ ๋ฐฐํฌ๋ฅผ ํ๊ฒ ๋๋ค.
๋ง์ฝ i๋ฒ์งธ ๊ธฐ๋ฅ์ด ๋ฐฐํฌ๋๋๋ฐ 5์ผ์ด ์์๋๋ค๊ณ ํ์, i๋ฒ์งธ ๊ธฐ๋ฅ์ด ๋ฐฐํฌ๋์์ ๋๋ 5์ผ์ด ์ง๋ ์์ ์ผ ๊ฒ์ด๋ค. ์ด๋ i+1๋ฒ์งธ ๊ธฐ๋ฅ์ด 5์ผ๋ณด๋ค ์งง๊ฒ ๊ฑธ๋ ค ๊ฐ๋ฐ์ด ๋์๋ค๊ณ ํ๋ฉด i๋ฒ์งธ ๊ธฐ๋ฅ์ด ์ถ์๋ ๋ ๊ฐ์ด ์ถ์๊ฐ ๋ ๊ฒ์ด๋ค. ์ฌ๊ธฐ์ i+2๋ฒ์งธ๋ 5์ผ๋ณด๋ค ์งง๊ฒ ๊ฑธ๋ฆฐ๋ค๋ฉด? i+2๋ฒ์งธ๋ ๊ฐ์ด ์ถ์๊ฐ ๋๊ณ ์ฐ์์ ์ผ๋ก 5์ผ๋ณด๋ค ์งง๊ฒ ๊ฑธ๋ฆฌ๋ ๊ธฐ๋ฅ๋ค์ ๋์์ ๋ฐฐํฌ๊ฐ ๋ ๊ฒ์ด๋ค. ๋จ, ์์์ k์ ๋ํด i+k๋ฒ์งธ ๊ธฐ๋ฅ์ด 5์ผ๋ณด๋ค ๊ธธ๊ฒ ๊ฑธ๋ฆฐ๋ค๋ฉด ๋ฐฐํฌ๊ฐ ๋์ง ์๋๋ค. ์ด๋ i + k ๋ฒ์งธ๋ณด๋ค ๋ค์์๋ ๊ธฐ๋ฅ๋ค์ 5์ผ๋ณด๋ค ์งง๊ฒ ๊ฑธ๋ ค์ ๊ฐ๋ฐ์ด ๋ ์ง๋ผ๋ ๋์์ ๋ฐฐํฌ๋ ์ ์๋ค. ๋ฐฐํฌ๋ ์์ฐจ์ ์ผ๋ก ์ด๋ฃจ์ด์ ธ์ผํ๊ธฐ ๋๋ฌธ์ i+k๋ฒ์งธ ๊ธฐ๋ฅ์ด ๋ฐฐํฌ๋์ง ์์ผ๋ฉด ๊ทธ ๋ค์์๋ ๊ธฐ๋ฅ์ ๋ฐฐํฌ๋ ์ ์๋ค.
- ๊ธฐ๋ฅ์ด ๊ฐ๋ฐ ๋๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ
๊ฐ ๊ธฐ๋ฅ๋ง๋ค ๊ฐ๋ฐ๋๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๋ฏธ๋ฆฌ ๊ณ์ฐํด๋์๋ค.
์์ ์ ์งํ๋๊ฐ 100์ด ๋์ด์ผ ๊ฐ๋ฐ์ด ๋๋ ๊ฒ์ด๋ฏ๋ก "(100 - ํ์ฌ ์์ ์ ์ง๋) / ๊ฐ๋ฐ์๋"๋ฅผ ์ฌ๋ฆผ ํ ๋งํผ์ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค. ์ด๋ ์ฃผ์ด์ง๋ ์์ ์ ์ง๋์ ๊ฐ๋ฐ์๋๋ intํ ์ด๋ฏ๋ก ๊ณ์ฐ๊ฒฐ๊ณผ๊ฐ doubleํ์ผ๋ก ๋์ฌ ์ ์๋๋ก ํด์ค๋ค.
๊ฐ ๊ณ์ฐ ๊ฒฐ๊ณผ๋ how_long ์ด๋ผ๋ intํ์ ๋ฒกํฐ์ ์ ์ฅํด ๋์๋ค.
- ์ฝ๋ ๊ตฌํ
for๋ฌธ์ 0๋ถํฐ ~ ์ด ๋ฐฐํฌํด์ผํ ๊ธฐ๋ฅ์ ์ - 1 ๋ฒ์งธ ๊น์ง ๋๋ฉด์ i๋ฒ ์งธ ๊ธฐ๋ฅ์ ๋ฐฐํฌํ๋ค.
i๋ฒ์งธ ๊ธฐ๋ฅ์ ๋ฐฐํฌํ๋ ค ํ๋ค๊ณ ํ์ ๋, i๋ฒ์ด ๋ฐฐํฌ๋๊ธฐ ๊น์ง ๊ฑธ๋ฆฐ ์๊ฐ์ now_time ์ด๋ผ๊ณ ํ๋ฉด now_time = how_long[i] ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ํ์ฌ i๋ฒ ๊ธฐ๋ฅ์ ๋ฌด์กฐ๊ฑด ๋ฐฐํฌ๋ ์์ ์ด๋ฏ๋ก int count ์ ์ด๊ธฐ๊ฐ์ 1๋ก ์ ์ธํ๋ค.
์ด๋ i + 1๋ฒ์งธ ๊ธฐ๋ฅ๋ถํฐ ๋๋ฉด์ ๊ฐ๋ฐํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด now_time๋ณด๋ค ๊ธด ๊ธฐ๋ฅ์ด ๋์ฌ ๋ ๊น์ง i๋ฅผ ํ ์นธ์ฉ ๋ค๋ก ์ด๋์ํค๋ฉด์ ๋ฐฐํฌ๋ ๊ธฐ๋ฅ์ ์์ธ count๋ฅผ +1 ํด์ค๋ค.
now_time๋ณด๋ค ์ค๋๊ฑธ๋ฆฌ๋ ๊ธฐ๋ฅ์ ๋ง๋ฌ์ ๋ ๋ฐ๋ณต๋ฌธ์ ์ข ๋ฃํ๊ณ answer์ count๋ฅผ ๋ฃ์ด์ค๋ค.
|
#include <string>
#include <vector>
#include <math.h>
using namespace std;
const int MAX_N = 100 + 5;
int how_long[MAX_N];
vector<int> solution(vector<int> progresses, vector<int> speeds) {
vector<int> answer;
for(int i = 0; i<progresses.size(); i++)
how_long[i] = ceil((double)(100-progresses[i]) / speeds[i]);
int now_time = 0;
for(int i = 0; i < progresses.size(); i++){
int cnt = 1;
now_time = how_long[i];
for(int j = i + 1; j<progresses.size(); j++){
if(how_long[j] <= now_time){
i++;
cnt++;
}
else break;
}
answer.push_back(cnt);
}
return answer;
}
|
cs |
์ฌ์ค ์คํ/ํ ๋ฌธ์ ๋ก ๋์์๋ ๋ฌธ์ ์์ง๋ง ์คํ/ํ๋ ์ ํ ์ฌ์ฉํ์ง์๊ณ ํ์ดํ๋ค.
๋ง์ฝ, ์คํ ๋๋ ํ๋ฅผ ์ด์ฉํด์ ๋ฌธ์ ๋ฅผ ํ๋ผ๊ณ ํ๋ค๋ฉด ์ด๋ ๊ฒ ํ์ด์ ์๋๋ค.
๋ค์๋ถํฐ๋ ๋ฌธ์ ์ ์ฃผ์ ์ ๋ง๊ฒ ์ฝ๋๋ฅผ ์ง๋ ๊ฒ์ ์ฐ์ตํด์ผ๊ฒ ๋ค.
'ํ๋ก๊ทธ๋๋จธ์ค > 2๋จ๊ณ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค Lv2] : ํ๊ฒ ๋๋ฒ (0) | 2022.06.20 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค Lv2] : ๋ค๋ฆฌ๋ฅผ ์ง๋๋ ํธ๋ญ (0) | 2022.06.15 |
[ํ๋ก๊ทธ๋๋จธ์ค Lv2] : ํ๋ฆฐํฐ (0) | 2022.06.15 |
[ํ๋ก๊ทธ๋๋จธ์ค Lv2] : ์ ํ๋ฒํธ ๋ชฉ๋ก (0) | 2022.06.14 |
[ํ๋ก๊ทธ๋๋จธ์ค Lv2] : ์คํ์ฑํ ๋ฐฉ (0) | 2022.06.14 |