νλ¦°ν° λ¬Έμ νμ΄
λ¬Έμ
λ¬Έμ μ΄μ΄λ³΄κΈ°
μΌλ°μ μΈ νλ¦°ν°λ μΈμ μμ²μ΄ λ€μ΄μ¨ μμλλ‘ μΈμν©λλ€. κ·Έλ κΈ° λλ¬Έμ μ€μν λ¬Έμκ° λμ€μ μΈμλ μ μμ΅λλ€. μ΄λ° λ¬Έμ λ₯Ό 보μνκΈ° μν΄ μ€μλκ° λμ λ¬Έμλ₯Ό λ¨Όμ μΈμνλ νλ¦°ν°λ₯Ό κ°λ°νμ΅λλ€. μ΄ μλ‘κ² κ°λ°ν νλ¦°ν°λ μλμ κ°μ λ°©μμΌλ‘ μΈμ μμ μ μνν©λλ€.
- μΈμ λκΈ°λͺ©λ‘μ κ°μ₯ μμ μλ λ¬Έμ(J)λ₯Ό λκΈ°λͺ©λ‘μμ κΊΌλ λλ€.
- λλ¨Έμ§ μΈμ λκΈ°λͺ©λ‘μμ Jλ³΄λ€ μ€μλκ° λμ λ¬Έμκ° ν κ°λΌλ μ‘΄μ¬νλ©΄ Jλ₯Ό λκΈ°λͺ©λ‘μ κ°μ₯ λ§μ§λ§μ λ£μ΅λλ€.
- κ·Έλ μ§ μμΌλ©΄ Jλ₯Ό μΈμν©λλ€.
μλ₯Ό λ€μ΄, 4κ°μ λ¬Έμ(A, B, C, D)κ° μμλλ‘ μΈμ λκΈ°λͺ©λ‘μ μκ³ μ€μλκ° 2 1 3 2 λΌλ©΄ C D A B μμΌλ‘ μΈμνκ² λ©λλ€.
λ΄κ° μΈμλ₯Ό μμ²ν λ¬Έμκ° λͺ λ²μ§Έλ‘ μΈμλλμ§ μκ³ μΆμ΅λλ€. μμ μμμ Cλ 1λ²μ§Έλ‘, Aλ 3λ²μ§Έλ‘ μΈμλ©λλ€.
νμ¬ λκΈ°λͺ©λ‘μ μλ λ¬Έμμ μ€μλκ° μμλλ‘ λ΄κΈ΄ λ°°μ΄ prioritiesμ λ΄κ° μΈμλ₯Ό μμ²ν λ¬Έμκ° νμ¬ λκΈ°λͺ©λ‘μ μ΄λ€ μμΉμ μλμ§λ₯Ό μλ €μ£Όλ locationμ΄ λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, λ΄κ° μΈμλ₯Ό μμ²ν λ¬Έμκ° λͺ λ²μ§Έλ‘ μΈμλλμ§ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
μ νμ¬ν
- νμ¬ λκΈ°λͺ©λ‘μλ 1κ° μ΄μ 100κ° μ΄νμ λ¬Έμκ° μμ΅λλ€.
- μΈμ μμ μ μ€μλλ 1~9λ‘ νννλ©° μ«μκ° ν΄μλ‘ μ€μνλ€λ λ»μ λλ€.
- locationμ 0 μ΄μ (νμ¬ λκΈ°λͺ©λ‘μ μλ μμ μ - 1) μ΄νμ κ°μ κ°μ§λ©° λκΈ°λͺ©λ‘μ κ°μ₯ μμ μμΌλ©΄ 0, λ λ²μ§Έμ μμΌλ©΄ 1λ‘ ννν©λλ€.
μ μΆλ ₯ μ
| priorities | location | return |
|---|---|---|
| [2, 1, 3, 2] | 2 | 1 |
| [1, 1, 9, 1, 1, 1] | 0 | 5 |
μ μΆλ ₯ μ μ€λͺ
- μμ #1
λ¬Έμ μ λμ¨ μμ κ°μ΅λλ€. - μμ #2
6κ°μ λ¬Έμ(A, B, C, D, E, F)κ° μΈμ λκΈ°λͺ©λ‘μ μκ³ μ€μλκ° 1 1 9 1 1 1 μ΄λ―λ‘ C D E F A B μμΌλ‘ μΈμν©λλ€.
νμ΄
function solution(priorities, location) {
var answer = 0;
var arr = priorities.map((item, index) => ({
target: index === location, // μΈμ μμ²ν λ¬Έμ
value: item, // μ€μλ
}));
while (true) {
// νμ¬ μΈμν μ°¨λ‘μΈ λ¬Έμλ₯Ό λκΈ°λͺ©λ‘μμ μ κ±°
const front = arr.shift();
// λκΈ°λͺ©λ‘μ€μ νμ¬ μΈμν λ¬Έμλ³΄λ€ μ€μλκ° λμ λ¬Έμκ° μλ€λ©΄
if (arr.some((item) => item.value > front.value)) {
// νμ¬ λ¬Έμλ₯Ό μ μΌ λ€λ‘ 보λ
arr.push(front);
continue;
}
// νμ μ¦κ°
answer++;
// νμ¬ μΈμν λ¬Έμκ° λ΄κ° μμ²ν λ¬Έμκ° λ§λ€λ©΄
if (front.target) {
return answer;
}
// else
// μμ²νμ§ μμ λ¬Έμλ μ€μλμ λ°λΌ νμ μ¦κ° ν κ·Έλ₯ λκΉ
}
}
λ¬Έμ μ£Όμ μΈ μ€ν/νμ λ§κ² ν΄λΉ λ¬Έμ λ νλ₯Ό μ΄μ©ν λ¬Έμ λΌκ³ ν μ μλ€. λκΈ°μ΄μ κ°μ₯ μμ μμλ₯Ό μ΄μ©ν΄ 쑰건μ λ§λμ§ κ²μ¬νλ©΄ λλ€.