View
[νλ‘κ·Έλλ¨Έμ€] 42586λ²: κΈ°λ₯ κ°λ° (JAVA)
Lily π©π» 2022. 6. 20. 23:16λ¬Έμ λ§ν¬:
https://programmers.co.kr/learn/courses/30/lessons/42586
νμ΄:
μ΄ λ¬Έμ μ μμ μ μμ μλ κΈ°λ₯μ΄ λ°°ν¬λμ΄μΌ λ€μ κΈ°λ₯μ΄ λ°°ν¬λ μ μλ€λ κ²μ΄λ€.Queueλ λ¨Όμ λ£μ λ°μ΄ν°κ° λ¨Όμ λμ€λ FIFO(First In First Out) νΉμ§μ κ°μ§κ³ μμΌλ―λ‘ λ¬Έμ ν΄κ²°μ μ°Έκ³ νλ€.
// μμ
μλ£νλ λ°μ 걸리λ μκ° κ³μ°: (100 - μμ
μ§λ) / μμ
μλ
for (int i = 0; i < progresses.length; i++) {
int time = (100 - progresses[i]) / speeds[i];
// λλ¨Έμ§κ° μμΌλ©΄ μΌμ + 1
if ((100 - progresses[i]) % speeds[i] != 0) {
time++;
}
worktime.add(time);
}
λ¨Όμ (100 - μμ μ§λ) / μμ μλλ₯Ό 걸리λ μΌμλ‘ μ‘κ³ λλ¨Έμ§κ° μμ κ²½μ°μ ν루λ₯Ό λνλ κ²μΌλ‘ μμ μ μλ£νλ λ°μ 걸리λ μΌμλ₯Ό μ μ₯νλ Listμ λ£μ΄ μ€λ€.
public List<Integer> calcNextWork(Queue<Integer> worktime) {
List<Integer> result = new ArrayList<Integer>();
// prevWork: λΉκ΅ν λ κΈ°μ€μ΄ λλ μΌμ
int prevWork = worktime.poll();
int cnt = 1;
while (!worktime.isEmpty()) {
int nextWork = worktime.peek();
if (prevWork < nextWork) {
result.add(cnt);
cnt = 1;
prevWork = worktime.poll();
} else {
worktime.poll();
cnt++;
}
}
result.add(cnt);
return result;
}
κ°μ₯ μ²μ μΌμλ₯Ό prevWorkλ‘ μ μ₯νκ³ λ€μμ μ€λ μΌμμ λΉκ΅νμ¬ μμΌλ©΄ κ²°κ³Ό listμ λ£μ΄ μ£Όκ³
μλλ©΄, κ·Έ λ€μμ μΌμλ₯Ό κΊΌλ΄μ preWorkλ³΄λ€ μμ κ°μ΄ λμ¬ λκΉμ§ λΉκ΅νλ€.
μμ€ μ½λ:
'κ°λ° > Algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νλ‘κ·Έλλ¨Έμ€] 17677λ²: λ΄μ€ ν΄λ¬μ€ν°λ§ (JAVA) (0) | 2022.06.20 |
---|---|
[λ°±μ€/BOJ] 1406λ²: μλν° (JAVA) (0) | 2022.06.08 |
[νλ‘κ·Έλλ¨Έμ€] 92334λ²: μ κ³ κ²°κ³Ό λ°κΈ° (JAVA) (0) | 2022.06.06 |
[λ°±μ€/BOJ] 15953λ²: μκΈ νν° (JAVA) (0) | 2022.06.05 |