2022. 8. 23. 12:18γκ°λ°/μ½λ©ν μ€νΈ
2022 KAKAO TECH INTERNSHIP > μ±κ²© μ ν κ²μ¬νκΈ°
λλ§μ μΉ΄μΉ΄μ€ μ±κ²© μ ν κ²μ¬μ§λ₯Ό λ§λ€λ €κ³ ν©λλ€.
μ±κ²© μ ν κ²μ¬λ λ€μκ³Ό κ°μ 4κ° μ§νλ‘ μ±κ²© μ νμ ꡬλΆν©λλ€. μ±κ²©μ κ° μ§νμμ λ μ ν μ€ νλλ‘ κ²°μ λ©λλ€.
1λ² μ§νλΌμ΄μΈν(R), νλΈν(T)
2λ² μ§νμ½ν(C), νλ‘λν(F)
3λ² μ§νμ μ΄μ§ν(J), 무μ§ν(M)
4λ² μ§νμ΄νΌμΉν(A), λ€μ€ν(N)
4κ°μ μ§νκ° μμΌλ―λ‘ μ±κ²© μ νμ μ΄ 16(=2 x 2 x 2 x 2)κ°μ§κ° λμ¬ μ μμ΅λλ€. μλ₯Ό λ€μ΄, "RFMN"μ΄λ "TCMA"μ κ°μ μ±κ²© μ νμ΄ μμ΅λλ€.
(μ€λ΅)
κ²μ¬ κ²°κ³Όλ λͺ¨λ μ§λ¬Έμ μ±κ²© μ ν μ μλ₯Ό λνμ¬ κ° μ§νμμ λ λμ μ μλ₯Ό λ°μ μ±κ²© μ νμ΄ κ²μ¬μμ μ±κ²© μ νμ΄λΌκ³ νλ¨ν©λλ€. λ¨, νλμ μ§νμμ κ° μ±κ²© μ ν μ μκ° κ°μΌλ©΄, λ μ±κ²© μ ν μ€ μ¬μ μμΌλ‘ λΉ λ₯Έ μ±κ²© μ νμ κ²μ¬μμ μ±κ²© μ νμ΄λΌκ³ νλ¨ν©λλ€.
μ§λ¬Έλ§λ€ νλ¨νλ μ§νλ₯Ό λ΄μ 1μ°¨μ λ¬Έμμ΄ λ°°μ΄ surveyμ κ²μ¬μκ° κ° μ§λ¬Έλ§λ€ μ νν μ νμ§λ₯Ό λ΄μ 1μ°¨μ μ μ λ°°μ΄ choicesκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§λλ€. μ΄λ, κ²μ¬μμ μ±κ²© μ ν κ²μ¬ κ²°κ³Όλ₯Ό μ§ν λ²νΈ μμλλ‘ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
(νλ΅)
λ΄ λ΅λ³
function solution(survey, choices) {
const types = ['RT', 'CF', 'JM', 'AN'];
const map = new Map([['R',0],['T',0],['C',0],['F',0],
['J',0],['M',0],['A',0],['N',0]]);
choices.forEach((choice, i) => {
if(choice === 4) return;
const selectedType = choice < 4 ? survey[i].charAt(0) : survey[i].charAt(1);
const count = map.get(selectedType);
const addedCount = Math.abs(choice - 4);
map.set(selectedType, count + addedCount);
});
return types.map(type => {
const type1 = type.charAt(0);
const type2 = type.charAt(1);
const count1 = map.get(type1);
const count2 = map.get(type2);
return count1 >= count2 ? type1 : type2;
}).join('');
}
π O(n)μ νμ΄μ΄λ€. λμ μΌλ‘ map.get(selectedType) || 0 μ΄λ°μμΌλ‘ κ°μ§κ³ μ¬κΉνλ€κ°, μ±κ²©μ νμ΄ μ ν΄μ ΈμμΌλ―λ‘ Mapμ μ΄κΈ°νν λ μμ κΈ°λ³Έκ°μΌλ‘ μΈν μ ν΄μ£Όλκ² κ°λ μ±μ΄ μ’μ κ² κ°μμ κ·Έλ κ² ν΄μ£Όμλ€.
π₯² μμ¬μ΄μ
- μ§λ¬Έμ κΌΌκΌΌν μ½μ§ μμμ νΈλλ° νλ£¨κ° κ±Έλ Έλ€..
choiceμ κ°μ΄ 1μ΄λ©΄ μ μλ 3μ μ΄ μΆκ°κ° λμ΄μΌ νλλ° κ·Έλλ‘ 1μ μ μΆκ°νλ μ½λλ₯Ό μμ±ν΄λκ³ μ μλμ§ νκ³ μμ² κ³ λ―Όνλ€.
νλλ μ΄κ² μ μ£½μ΄λ μ보μ΄λμ§..
μ°¨λΆνκ² νΈλ μ°μ΅μ κ³μ ν΄μΌν κ² κ°λ€. μ μ 차리μ!
// λ§λ λ°©μ
const addedCount = Math.abs(choice - 4);
// ν€λ§¨ λ°©μ
const addedCount = choice < 4 ? choice : choice - 4;

'κ°λ° > μ½λ©ν μ€νΈ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| [Lv1] νμλ²(Greedy) > 체μ‘볡 (0) | 2022.08.16 |
|---|---|
| [Lv1] 2021μΉ΄μΉ΄μ€ > μ«μ λ¬Έμμ΄κ³Ό μλ¨μ΄ (0) | 2022.08.09 |