https://school.programmers.co.kr/learn/courses/20848/lessons/255906
νλ‘κ·Έλλ¨Έμ€
SWκ°λ°μλ₯Ό μν νκ°, κ΅μ‘, μ±μ©κΉμ§ Total Solutionμ μ 곡νλ κ°λ°μ μ±μ₯μ μν λ² μ΄μ€μΊ ν
programmers.co.kr
μλ£κ΅¬μ‘°
- 2μ°¨μ λ°°μ΄ : μλλ€μ {λμ°©μκ°, μ£Όλ¬Έν μλ£μ μμμκ°} μ μ μ₯
- ν : μμ°¨μ μΌλ‘ μλμ λ£κ³ λ¨Όμ λ€μ΄μ¨ μλμ μ²λ¦¬
νμ΄κ³Όμ
1. νμ¬μκ°(time)μ κ°±μ
1-1. λκΈ°μ€( νλ‘ κ΅¬νν¨ )μ μλμ΄ μμ κ²½μ° : time += λ¨Όμ λμ°©ν μλμ μλ£ μ μ‘°μκ°
1-2. λκΈ°μ€μ μλμ΄ μμ κ²½μ° : time = λ€μ μλμ μ μ₯μκ°
2. νμ¬μκ°(time)λ³΄λ€ μκ±°λ κ°μΌλ©΄ μλλ€μ λκΈ°μ€(ν)μ μ½μ
3. ν μ¬μ΄μ¦λ‘ μΉ΄νμ λμμ μ‘΄μ¬ν μλ μμ μ΅λκ° κ°±μ
3-1. answerμ return ν λλ 1μ΄ μλ κ²½μ° +1 μ ν΄μ€μΌ ν©λλ€.
λκΈ°μ€ μ μΌ μμ μΈμμ νμμ λΉΌκ³ λμ, λ€λ₯Έ μΈμλ€μ λκΈ°μ€μ μΆκ°νκΈ° λλ¬Έμ λλ€.
μκ²λμ
- νμ¬μκ°(time)μ κ°±μ νλ λΆλΆμμ μ€μκ° μμμ΅λλ€. λκΈ°μ€μ μλμ΄ μλ κ²½μ°λ₯Ό κ³ λ €ν΄μ timeμ κ°±μ μμΌμ€μΌ νμ΅λλ€. ν μ€νΈμΌμ΄μ€κ° μλ, μμΈμ μΈ μν©μ μ κ³ λ €ν΄μ λ¬Έμ λ₯Ό νμ΄μΌ κ² λ€κ³ μκ°νμ΅λλ€.
- λ¬Έμ μμ ν μλμ΄ μΉ΄νμμ λκ°κ³Ό λμμ λ€λ₯Έ μλμ΄ μΉ΄νμ λ€μ΄μ¬ κ²½μ°, λκ°λ μλμ΄ λ¨Όμ ν΄μ₯ν λ€μ λ€μ΄μ€λ μλμ΄ μ μ₯ν©λλ€ λΌλ μ‘°κ±΄μ΄ ννΈμμ΅λλ€. μ½λλ 쑰건μ²λΌ μλμ ν΄μ₯μν€κ³ λ€λ₯Έ μλμ μ μ₯ μν€λ μμλ‘ κ΅¬νν΄μΌ νμ΅λλ€.
- μ΄μ 'μ΄μ체μ ' λ¬Έμ μ λΉμ·νκ² νλ₯Ό λκ³ μκ°μ κ°±μ νλ λ¬Έμ μμ΅λλ€.
μ 체μ½λ
import java.util.*;
class Solution {
int[][] customer; // {λμ°©μκ°, μ£Όλ¬Έν μλ£μ μμμκ°}
int k;
int solve(){
int time = 0, idx = 0, max = 0;
Deque<int[]> q = new ArrayDeque<>();
while(idx < customer.length){
if(!q.isEmpty()){ // λκΈ° μ€μ μλμ΄ μλ€λ©΄
int[] cur = q.pollFirst(); // λ¨Όμ λ€μ΄μ¨ μλμ μλ£λ₯Ό λ§λ€κΈ°
time += cur[1];
}else{ // λκΈ° μ€μ μλμ΄ μλ€λ©΄
time = customer[idx][0]; // λ€μ μλμ μ
μ₯ μκ°μ timeμΌλ‘ λ§λ€κΈ°
}
// νμ¬ time λ³΄λ€ μκ±°λ κ°μΌλ©΄ νμ λ£κΈ°
while(idx < customer.length && customer[idx][0] <= time){
q.offer(customer[idx]);
idx += 1;
}
int qSize = q.size();
max = qSize > max ? qSize : max;
}
return max;
}
public int solution(int[] menu, int[] order, int k) {
int answer = 0;
customer = new int[order.length][2];
this.k = k;
int time = 0;
for(int i=0;i<order.length;i++){
customer[i][0] = time;
customer[i][1] = menu[order[i]];
time += k;
}
answer = solve();
answer = answer == 1 ? 1 : answer + 1;
return answer;
}
}
'πμ½λ©ν μ€νΈ:CodingTest' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[PCCP λͺ¨μκ³ μ¬ #1] 4λ² - μ΄μ체μ (0) | 2024.12.12 |
---|---|
PCCP λͺ¨μκ³ μ¬1ν 3λ² (0) | 2024.12.11 |
λ©λμ¬μ μ μ¬λ€ (0) | 2024.12.04 |
2024 μΌμ±SWμλν μ€νΈ νλ°κΈ° μ€μ 1λ² (0) | 2024.12.02 |
μμ΄(nκ³Όm λ¬Έμ ) μ΅μ ν μν€κΈ° && μ‘°ν© (0) | 2024.10.29 |