[JS] CDT 로 배우는 Javascript 기능과 기술들 [17.0]

김현수·2023년 10월 26일
0

cdt

목록 보기
17/51


📰 Coding Test 에서 익히는 javscript 기능과 기술 등


등수 매기기 (프로그래머스)

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 와 비교

profile
일단 한다

0개의 댓글