개발자 '쑥말고인절미'
[프로그래머스] JS [1차] 비밀지도 본문
문제

내 답안
function solution(n, arr1, arr2) {
var answer = [];
for(let i=0; i<n; i++) {
let totalTwo1 = '';
let totalTwo2 = '';
let num1 = arr1[i];
let num2 = arr2[i];
//2진법으로 변환
while(num1 > 0) {
let twoTemp1 = num1%2;
num1 = parseInt(num1/2);
totalTwo1 = String(twoTemp1) + totalTwo1;
}
while(totalTwo1.length != n) {
totalTwo1 = '0' + totalTwo1;
}
while(num2 > 0) {
let twoTemp2 = num2%2;
num2 = parseInt(num2/2);
totalTwo2 = String(twoTemp2) + totalTwo2;
}
while(totalTwo2.length != n) {
totalTwo2 = '0' + totalTwo2;
}
//2진법 더하기
let resultTwo = '';
for(let j=0; j<n; j++) {
resultTwo += String(parseInt(totalTwo1[j]) + parseInt(totalTwo2[j]));
}
//#, 공백 변환
let ch = '';
for(let j=0; j<n; j++) {
parseInt(resultTwo[j]) > 0 ? ch += '#' : ch += ' ';
}
answer.push(ch);
}
return answer;
}
메모
진법 변환을 못해서 결국 구글링을 해서 배웠다. 참 마음이 안좋은 문제였는데 내가 너무 바보같이 풀기도 한거같고 친구는 map을 사용해서 간단하게 소스를 작성했다. 다른 사람들 소스를 보는데 정말 짧았다. 이게 뭐지... 싶은 수준으로 짧게 구현한걸 쉽게 볼 수 있었다. 이번 문제야 말로 다른 사람들 소스를 참고해서 공부하는게 좋겠다. 친구소스와 다른 사람들의 짧은 소스들을 아래에 옮겨놨으니 짬내서 들여다보자.
아래는 친구 소스이다.
function solution(n, arr1, arr2) {
var answer = [];
answer = arr1.map((x,i) =>{
return (x | arr2[i]).toString(2).padStart(n,0);
});
return answer.map((x) => x.replaceAll('1','#').replaceAll('0',' '));
}
아래는 다른 사람의 풀이
// 좋아요 33개
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;
}
// 좋아요 24개
var solution=(n,a,b)=>a.map((a,i)=>(a|b[i]).toString(2).padStart(n,0).replace(/0/g,' ').replace(/1/g,'#'))
// 좋아요 3개
function solution(n, arr1, arr2) {
return arr1.map((i, index) =>('0'.repeat(n) + (i | arr2[index]).toString(2)).slice(-n)).map(i => i.replace(/0/g, ' ').replace(/1/g, '#'));
}
참고링크
https://m.blog.naver.com/aroaroro/220597221604
알고리즘 10진수 에서 2진수 변환법 ! 2진수 에서 10진수 변환법 ~!! 모든 변환법!! [10진법 2진법]
안녕하세요.~ 반갑습니다. 오늘 알고리즘 에는 진법에 관해서 한번 올려보려고 합니다.!! 저도 진법이 아직...
blog.naver.com
'STUDY > 코딩테스트' 카테고리의 다른 글
| [프로그래머스] JS 숫자 문자열과 영단어 (0) | 2022.09.28 |
|---|---|
| [프로그래머스] JS 최소직사각형 (1) | 2022.09.23 |
| [프로그래머스] JS 예산 (1) | 2022.09.19 |
| [프로그래머스] JS 약수의 개수와 덧셈 (0) | 2022.09.14 |
| [프로그래머스] JS 내적 (0) | 2022.09.14 |