ν°μ€ν 리 λ·°
[2018 KAKAO BLIND RECRUITMENT]λΉλ°μ§λ
choi95 2021. 9. 1. 10:39λ¬Έμ
λ€μ€λ νμ νλ‘λκ° λΉμκΈμ μ¨κ²¨λλ μ₯μλ₯Ό μλ €μ€ λΉλ°μ§λλ₯Ό μμ λ£μλ€. κ·Έλ°λ° μ΄ λΉλ°μ§λλ μ«μλ‘ μνΈνλμ΄ μμ΄ μμΉλ₯Ό νμΈνκΈ° μν΄μλ μνΈλ₯Ό ν΄λ ν΄μΌ νλ€. λ€νν μ§λ μνΈλ₯Ό ν΄λ ν λ°©λ²μ μ μ΄λμ λ©λͺ¨λ ν¨κ» λ°κ²¬νλ€.
- μ§λλ ν λ³μ κΈΈμ΄κ° nμΈ μ μ¬κ°ν λ°°μ΄ ννλ‘, κ° μΉΈμ "곡백"(" ") λλ "λ²½"("#") λ μ’ λ₯λ‘ μ΄λ£¨μ΄μ Έ μλ€.
- μ 체 μ§λλ λ μ₯μ μ§λλ₯Ό κ²Ήμ³μ μ»μ μ μλ€. κ°κ° "μ§λ 1"κ³Ό "μ§λ 2"λΌκ³ νμ. μ§λ 1 λλ μ§λ 2 μ€ μ΄λ νλλΌλ λ²½μΈ λΆλΆμ μ 체 μ§λμμλ λ²½μ΄λ€. μ§λ 1κ³Ό μ§λ 2μμ λͺ¨λ κ³΅λ°±μΈ λΆλΆμ μ 체 μ§λμμλ 곡백μ΄λ€.
- "μ§λ 1"κ³Ό "μ§λ 2"λ κ°κ° μ μ λ°°μ΄λ‘ μνΈνλμ΄ μλ€.
- μνΈνλ λ°°μ΄μ μ§λμ κ° κ°λ‘μ€μμ λ²½ λΆλΆμ 1, 곡백 λΆλΆμ 0μΌλ‘ λΆνΈννμ λ μ»μ΄μ§λ μ΄μ§μμ ν΄λΉνλ κ°μ λ°°μ΄μ΄λ€.
λ€μ€κ° νλ‘λμ λΉμκΈμ μμ λ£μ μ μλλ‘, λΉλ°μ§λμ μνΈλ₯Ό ν΄λ νλ μμ μ λμμ€ νλ‘κ·Έλ¨μ μμ±νλΌ.
μ λ ₯ νμ
μ λ ₯μΌλ‘ μ§λμ ν λ³ ν¬κΈ° n κ³Ό 2κ°μ μ μ λ°°μ΄ arr1, arr2κ° λ€μ΄μ¨λ€.
- 1 β¦ n β¦ 16
- arr1, arr2λ κΈΈμ΄ nμΈ μ μ λ°°μ΄λ‘ μ£Όμ΄μ§λ€.
- μ μ λ°°μ΄μ κ° μμ xλ₯Ό μ΄μ§μλ‘ λ³ννμ λμ κΈΈμ΄λ n μ΄νμ΄λ€. μ¦, 0 β¦ x β¦ 2n - 1μ λ§μ‘±νλ€.
μΆλ ₯ νμ
μλμ λΉλ°μ§λλ₯Ό ν΄λ νμ¬ '#', 곡백μΌλ‘ ꡬμ±λ λ¬Έμμ΄ λ°°μ΄λ‘ μΆλ ₯νλΌ.
μ μΆλ ₯ μμ
맀κ°λ³μκ°
n | 5 |
arr1 | [9, 20, 28, 18, 11] |
arr2 | [30, 1, 21, 17, 28] |
μΆλ ₯ | ["#####","# # #", "### #", "# ##", "#####"] |
맀κ°λ³μκ°
n | 6 |
arr1 | [46, 33, 33 ,22, 31, 50] |
arr2 | [27 ,56, 19, 14, 14, 10] |
μΆλ ₯ | ["######", "### #", "## ##", " #### ", " #####", "### # "] |
λ¬Έμ νμ΄
- ν΄λ ν λ μ§λλ₯Ό μ»κΈ° μν΄μ μ£Όμ΄μ§ λ°°μ΄μ μ΄μ§μλ‘ λ³ν
- ν΄λ ν λ 2κ°μ μ§λ μ€μμ νλλΌλ λ²½μ΄ μμΌλ©΄ λ²½μ΄ μκΈ° λλ¬Έμ μ΄μ§μμΈ λ ꡬκ°μ ν©μ΄ 1μ΄μμ΄λ©΄ # μΆκ°
- ν΄λ ν λ 2κ°μ μ§λ λͺ¨λ κ³΅λ°±μΌ κ²½μ°μλ§ κ³΅λ°±μ΄κΈ° λλ¬Έμ μ΄μ§μμΈ λ ꡬκ°μ ν©μ΄ 0μΌ κ²½μ°μ κ³΅λ°±μ΄ μΆκ°
μ½λ
function changeBinary(x, n) {
let tmpArr = [];
while (x) {
tmpArr.push(x % 2);
x = parseInt(x / 2);
}
while (tmpArr.length < n) tmpArr.push(0); //μ΄μ§μμ κ°μ΄ μ μ λ°°μ΄ κΈΈμ΄ nμ κ°λ§νΌ λμ¬ μ μλλ‘ 0μ μΆκ°
return tmpArr.reverse();
}
function solution(n, arr1, arr2) {
var answer = [];
let newArr1 = [];
let newArr2 = [];
for (let i = 0; i < n; i++) {
newArr1.push(changeBinary(arr1[i], n));
newArr2.push(changeBinary(arr2[i], n));
}
for (let i = 0; i < n; i++) {
let tmpCode = "";
for (let j = 0; j < n; j++) {
if (newArr1[i][j] + newArr2[i][j] >= 1) tmpCode += "#";
else tmpCode += " ";
}
answer.push(tmpCode);
}
return answer;
}
λ€λ₯Έ μ¬λ νμ΄
function solution(n, arr1, arr2) {
return arr1.map((v, i) => addZero(n, (v | arr2[i]).toString(2)).replace(/1|0/g, a => +a ? '#' : ' '));
}
const addZero = (n, s) => {
return '0'.repeat(n - s.length) + s;
}
Number.prototype.toString() μΈμκ°μ λ°λΌ μ§μμ κ°μ λ¬λ¦¬ ννν μ μλ€λ μ μ νμ©ν μ μ΄ μ΄μμ μ΄μλ€.
λν ν¨μμ λ§€κ° λ³μμ |(or) μ°μ°μ μ¬μ©νλ©΄ λ κ°μ μΈμλ₯Ό ν©ν κ°μ λ°λ‘ ν λΉν΄μ€ μ μλ€λ μ μ νμ΅ν μ μμλ€.
var solution=(n,a,b)=>a.map((a,i)=>(a|b[i]).toString(2).padStart(n,0).replace(/0/g,' ').replace(/1/g,'#'))
μ΄ μ½λ κ°μ κ²½μ°λ μμ μ½λμ μ λ°μ μΈ κ΅¬νμ λΉμ·νλ 0μ κΈΈμ΄ nλ§νΌ μΆκ°ν΄μ£Όλ ν¨μ λ₯Ό λμ νμ¬ String.prototype.padStart()λ₯Ό μ¬μ©νμλ€λ μ μ΄ μ΄μμ μ΄μ΄μ κ°μ Έμ λ΄€λ€.
padStart() λ©μλλ νμ¬ λ¬Έμμ΄μ μμμ λ€λ₯Έ λ¬Έμμ΄λ‘ μ±μ, μ£Όμ΄μ§ κΈΈμ΄λ₯Ό λ§μ‘±νλ μλ‘μ΄ λ¬Έμμ΄μ λ°νν©λλ€. μ±μλ£κΈ°λ λμ λ¬Έμμ΄μ μμ(μ’μΈ‘)λΆν° μ μ©λ©λλ€.
'μκ³ λ¦¬μ¦ > κΈ°μΆ λ° λ°±μ€ νμ΄' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μκ° μ½λ μ±λ¦°μ§ μμ¦2]κ΄νΈ νμ νκΈ° (0) | 2021.10.09 |
---|---|
[2020 KAKAO BLIND RECRUITMENT]λ¬Έμμ΄ μμΆ_μ κ· ννμμ λ³μ ν λΉ (0) | 2021.09.02 |
[λ°±μ€ 1874λ²]μ€ν μμ΄ (0) | 2021.08.27 |
[2018 KAKAO BLIND RECRUITMENT]λ€νΈ κ²μ_regExp.match λ©μλμ λν΄ νμ΅ (0) | 2021.08.26 |
[λ°±μ€ 9012λ²]κ΄νΈ (0) | 2021.08.25 |