등수 매기기 (프로그래머스)
function solution(score) {
const avg = score.reduce((acc, [eng, math]) => {
acc.push(eng+math);
return acc;
}, []);
const sorted = [...avg].sort((a, b) => b - a)
return avg.reduce((acc, cur) => [...acc, sorted.indexOf(cur) + 1], []);
}
Array 의 reduce
누적치를 구하는 방법을
Array 의 내장 기능인 reduce를 사용
구조분해
Array 의 reduce 을 사용하고
cur 을 [eng, math] 로 구조분해하여 평균구하기
디스트럭처링
avg 라는 배열을 직접 sort 하면
sorted 뿐만 아니라 avg 도 정렬이 되기 때문에
[...avg] 를 얕은 복사
배열의 indexOf
해당 값의 index 를 반환
옹알이1 (프로그래머스)
function solution(babbling) {
var answer = 0;
const regex = /^(aya|ye|woo|ma)+$/;
babbling.forEach(word => {
if (regex.test(word)) answer++;
})
return answer;
}
문자열 비교는 정규식으로 하면 EASY
^
문자열의 시작을 의미
(aya|ye|woo|ma)
괄호 안에 있는 항목 중 하나와 일치해야 함
+
바로 앞의 요소가 하나 이상 있어야 함
"(aya|ye|woo|ma)" 패턴이
하나 이상 연속되어 있어야 함
$
문자열의 끝을 의미
test()
정규표현식 테스트하여 일치하면 +1
로그인 성공 (프로그래머스)
function solution(id_pw, db) {
const [id, pw] = id_pw;
const map = new Map(db);
return map.has(id) ? (map.get(id) === pw ? 'login' : 'wrong pw') : 'fail';
}
[id, pw]
구조분해
new Map(db)
배열을 Map 으로 반환
map.has(id)
id 가 존재하는지 확인
map.get(id)
id 의 저장된 값을 pw 와 비교