https://school.programmers.co.kr/learn/courses/30/lessons/120885
function solution(bin1, bin2) {
return (Number.parseInt(bin1, 2) + Number.parseInt(bin2, 2)).toString(2);
}
Number.parseInt
의 두 번째 인자로 기수법을 정할 수 있다.Number.toString
의 인자로 기수법을 정한 후 문자열을 반환한다.https://school.programmers.co.kr/learn/courses/30/lessons/120884
function solution(chicken) {
if (parseInt(chicken / 10) < 1) return 0;
return (
parseInt(chicken / 10) + solution(parseInt(chicken / 10) + (chicken % 10))
);
}
재귀 함수
로 풀었다.parseInt(chicken / 10)
) + 남은 쿠폰(chicken % 10
)을 더해 재귀로 보냈다.(chicken-1)/9
를 하던데, 이유를 이해하지 못했다. 10마리째는 무조건 1마리 서비스니까 9
로 나눈 것 같고, -1
은 왜지?~~(double tilde)
연산자로 푼 사람도 있었다. 새로운 걸 또 배웠다.https://school.programmers.co.kr/learn/courses/30/lessons/120883
function solution(id_pw, db) {
const idCheck = db.filter(([id, _]) => id_pw.includes(id));
const pwCheck = idCheck.filter(([_, pw]) => id_pw.includes(pw));
return !idCheck.length ? "fail" : !pwCheck.length ? "wrong pw" : "login";
}
id
가 있는 배열을 idCheck
으로 걸러내고, idCheck
에서 다시 pw
가 있는 배열을 걸러냈다.idCheck
이 빈 배열이면 fail
, pwCheck
이 빈 배열이면 wrong pw
, 둘 다 요소가 있으면 login
으로 처리했다.Map
으로 처리한 사람도 있었다. 리마인드.https://school.programmers.co.kr/learn/courses/30/lessons/120882
function solution(score) {
const avg = score.map((v) => v.reduce((acc, cur) => acc + cur) / v.length);
const copySort = [...avg].sort((a, b) => b - a);
return avg.map((v) => copySort.indexOf(v) + 1);
}
indexOf
로 copySort
에서 avg
요소의 첫 번째 인덱스를 구한 후 1
더해줬다.https://school.programmers.co.kr/learn/courses/30/lessons/120880
function solution(numlist, n) {
return numlist.sort((a, b) => {
const x = Math.abs(n - a);
const y = Math.abs(n - b);
if (x === y) return b - a;
return x - y;
});
}
n
과 거리가 같은 요소라면 내림차순으로, 아니라면 거리가 짧은 순으로 정렬했다.