[Javascript][Programmers] μμ£Όνμ§ λͺ»ν μ μ
λ¬Έμ
ν΄λΉ λ¬Έμ λ₯Ό ν΄κ²°νλ κ°μ₯ κ°λ¨ν λ°©λ²μ νλμ© λμ‘°νλ©° μμ£Όνμ§ λͺ»ν μ¬λμ μ°Ύλ κ²μ λλ€. μμ£Όμ λͺ©λ‘μ μλ μ΄λ¦μ μ°Έκ°μ λͺ©λ‘μμ νλμ© μμ νλ€λ³΄λ©΄ μμ£Όνμ§ λͺ»ν ν μ¬λμ μ°Ύμ μ μκ² λ©λλ€. κ°μ₯ μ§κ΄μ μΈ λ°©λ²μ λ λ°°μ΄μ μ λ ¬ν ν μμλλ‘ λΉκ΅νλ κ²μ λλ€.
- μκ°λ³΅μ‘λ: O(NlogN)
function solutionWithSort(participant, completion) {
participant.sort();
completion.sort();
for(let i = 0; i < participant.length; i++) {
if(participant[i] !== completion[i]) {
return participant[i];
}
}
}
μ΄ λ°©λ²μ κ°λ¨νκ³ μ΄ν΄νκΈ° μ½μ§λ§ λκ·λͺ¨ λ°μ΄ν°μ μμλ ν¨μ¨μ±μ΄ λ¨μ΄μ§ μ μμ΅λλ€.
λμ νμ΄
λ ν¨μ¨μ μΈ λ°©λ²μΌλ‘ ν΄μ λ§΅μ μ¬μ©ν μ μμ΅λλ€.
- μκ°λ³΅μ‘λ: O(N)
function solution(participant, completion) {
const hashMap = new Map();
for(let name of participant) {
hashMap.set(name, (hashMap.get(name) || 0) + 1);
}
for(let name of completion) {
let count = hashMap.get(name);
if(count === 1) {
hashMap.delete(name);
} else {
hashMap.set(name, count - 1);
}
}
return hashMap.keys().next().value[0]
}
κ° μ°Έκ°μμ μ΄λ¦μ ν€λ‘, λ±μ₯ νμλ₯Ό κ°μΌλ‘ νλ ν΄μ λ§΅μ μμ±ν©λλ€. μμ£Όμ λͺ©λ‘μ μννλ©΄μ ν΄λΉ μ΄λ¦μ μΉ΄μ΄νΈλ₯Ό κ°μμν€κ³ , μ΅μ’ μ μΌλ‘ λ§΅μ λ¨μμλ μ μΌν ν€κ° μμ£Όνμ§ λͺ»ν μ μμ μ΄λ¦μ΄ λ©λλ€.
λ€λ₯Έ νμ΄
κ°μ²΄λ₯Ό μ¬μ©νμ¬ ν΄κ²°ν μλ μμ΅λλ€.
- μκ°λ³΅μ‘λ: O(N)
function solution(participant, completion) {
// β ν΄μ ν
μ΄λΈ μμ±
const obj = {};
// β μ°Έκ°μλ€μ μ΄λ¦μ ν΄μ ν
μ΄λΈμ μΆκ°
for (const p of participant) {
if (obj[p]) {
obj[p] += 1;
} else {
obj[p] = 1;
}
}
// β μμ£Όν μ μλ€μ μ΄λ¦μ ν€λ‘ νλ κ°μ 1μ© κ°μ
for (const c of completion) {
obj[c] -= 1;
}
// β ν΄μ ν
μ΄λΈμ λ¨μ μλ μ μκ° μμ£Όνμ§ λͺ»ν μ μ
for (const key in obj) {
if (obj[key] > 0) {
return key;
}
}
}