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

김현수·2023년 10월 22일
0

cdt

목록 보기
13/51


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


문자열 정규표현식 활용

// 문자열 my_str과 n이 매개변수로 주어질 때, 
// my_str을 길이 n씩 잘라서 저장한 배열
my_str.match(new RegExp(.{1,${n}}, "g"));
  • 코드 해석
    • my_str: 문자열 변수
    • .match(): 문자열의 메서드로, 주어진 정규 표현식과 일치하는 모든 결과를 배열로 반환
    • new RegExp(): 정규 표현식을 생성하는 생성자
      문자열로 표현된 패턴과, 옵션 플래그(예: "g")를 인수로 받아 정규 표현식 객체를 생성
    • .{1,${n}}: 정규 표현식 패턴
      • '.': 임의의 문자 하나
      • {1,${n}}: 앞의 패턴이 최소 1번에서 최대 n번 반복되는 부분을 의미, 여기서 n은 외부 변수로, 해당 패턴이 몇 번 반복될 수 있는지를 정의
    • "g": 전역 검색 플래그, 문자열 전체에서 일치하는 모든 부분을 탐색

배열의 디스트럭처링 활용한 최대, 최소 구하기

 let x = [],
     y = [];

    for (let pos of dots) {
        x.push(pos[0]);
        y.push(pos[1]);
    }

    return (Math.max(...x) - Math.min(...x)) * (Math.max(...y) - Math.min(...y))

?? 연산자 (nullish coalescing operator)

  • null과 undefined에 대해서만 작동
  • 이 외의 falsy 값에는 동작 X
let foo = null ?? 'default string';
console.log(foo); // 'default string'

let bar = undefined ?? 'default string';
console.log(bar); // 'default string'

let baz = 0 ?? 42;
console.log(baz); // 0

다항식 더하기 ( 프로그래머스 )

function solution(polynomial) {
    const arr = polynomial.split(" + ");
    const xNum = arr
                .filter(n => n.includes("x"))
                .map(n => n.replace('x', '') || '1')
                .reduce((acc, cur) => acc + parseInt(cur, 10), 0);
  
    const num = arr
                .filter(n => !isNaN(n))
                .reduce((acc, cur) => acc + parseInt(cur, 10), 0);

    let answer = [];
    if(xNum) answer.push(`${xNum === 1 ? "" : xNum}x`);
    if(num) answer.push(num);

    return answer.join(" + ");
}
profile
일단 한다

0개의 댓글