[ํ๋ก๊ทธ๋๋จธ์ค] LV.2 ๊ธฐ๋ฅ๊ฐ๋ฐ
1. ๋ฌธ์ : Link
์์ ์๋ฃ๋[90,40,20]์ ํ๋ฃจ๋น ์์ ์ฒ๋ฆฌ ์๋ [10,1,5]๊ฐ ์ฃผ์ด์ก์๋ ์ ์ ์์ ์ด ์๋ฃ๋๋๋๋ก ์์ ์ด ์๋ฃ๋ ๋ ํ ๋ฒ์ ์๋ฃ๋๋ ์์ ์ ์
2. ํ์ด
๋จผ์ ์ ์ ์์ ์ day๋งํผ ์ง๋๊ฐ์ ๋ ํด๋น ์์ ์ด ์๋ฃ๊ฐ ๋์ํ์ธ์ง ํ์ธํ๊ณ ๋ง์ฝ ์๋ฃ๊ฐ ๋์๋ค๋ฉด fin ๊ฐ์ 1์ฌ๋ ค์ค๋ค. ๋ง์ฝ ์ฒ์์ด๋ ์๋ฃ๋์ง ์์ ๊ฒฝ์ฐ๋ผ๋ฉด cnt๊ฐ์ ์ ๋ฐ์ดํธ ํด์ฃผ๊ณ fin๊ฐ์ ์ฌ๋ ค์ค๋ค. ์ด ๋ ์๋ฃ๋์ง ์์ ๊ฐ์ด ๋์๋ค๋๊ฑด ์ด์ ๊น์ง์ ์์ ์ ๋ํ ์ฒ๋ฆฌ๋ฅผ ํด์ค์ผํจ์ ์๋ฏธํ๋ฏ๋ก answer์ appendํด์ค๋ค.
๋ง์ฝ ๋ฐฐ์ด์ ๋ง์ง๋ง์ธ ๊ฒฝ์ฐ answer์ appendํด์ค๋ค.
3. ์ฝ๋
import math
def solution(progresses, speeds):
answer = []
fin = 0
cnt = 0
for i in range(len(progresses)):
pro = progresses[i]
speed = speeds[i]
left = 100 - pro
if left - speed * cnt <= 0:
fin += 1
else:
cnt += math.ceil(left / speed) - cnt
if i == 0:
fin += 1
else:
answer.append(fin)
fin = 1
if i == len(progresses) - 1:
answer.append(fin)
return answer
ceil : ์ฌ๋ฆผ
floor : ๋ด๋ฆผ
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
int days = 0;
int temp = 0;
ArrayList<Integer> arr = new ArrayList<Integer>();
if(progresses.length == 1) {
int[] answer = new int[1];
answer[0] = 1;
return answer;
}
for(int i=0; i<progresses.length; i++){
int leftpro = 100-progresses[i];
int leftdays = (int)Math.ceil(leftpro/speeds[i]);
if(leftpro%speeds[i] != 0) leftdays++;
if(leftdays > days){
days = leftdays;
if(i != 0) {
arr.add(temp);
}
temp = 1;
if(i == progresses.length-1){
arr.add(temp);
}
}
else{
temp++;
if(i == progresses.length-1){
arr.add(temp);
}
}
}
int[] answer = new int[arr.size()];
for(int i=0; i<arr.size(); i++){
answer[i] = arr.get(i);
}
return answer;
}
}
'๐ป Coding Problems Solving > Array | String | Loop' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] LV.2 ์์ด ๋๋ง์๊ธฐ (0) | 2022.04.08 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] LV.2 ๊ฐ์ฅ ํฐ ์ (0) | 2022.04.07 |
[ํ๋ก๊ทธ๋๋จธ์ค] LV.2 124 ๋๋ผ์ ์ซ์ (0) | 2022.04.07 |
[ํ๋ก๊ทธ๋๋จธ์ค] LV.2 ์คํ์ฑํ ๋ฐฉ (0) | 2022.04.07 |
[ํ๋ก๊ทธ๋๋จธ์ค] LV.2 ๋ฌธ์์ด ์์ถ (0) | 2022.04.07 |
์ต๊ทผ๋๊ธ