[프로그래머스/Lv1/자바스크립트] 문자열 내 p와 y의 개수

2023. 5. 1. 12:43

문제

https://school.programmers.co.kr/learn/courses/30/lessons/12916?language=javascript# 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


코드

function solution(s) {
    var lowerS = s.toLowerCase();

    if (lowerS.match(/p/g)?.length == lowerS.match(/y/g)?.length) {
        return true;
    }
    else {
        return false;
    }
}

메모

입력으로 들어오는 문자열 s를 toLowerCase() 메소드로 모두 소문자로 변환시킨 뒤

정규표현식을 사용해서 p와 y의 개수를 세고 그 값을 비교하여 true 혹은 false를 반환하도록 함수를 제작했다.

 

정규표현식을 사용해 p와 y의 개수를 세는 과정에서 문자열에 p와 y가 없다면 null값을 반환하게 되는데 이 null에 length 프로퍼티를 접근하려고 하면 런타임 에러가 발생한다.

그렇기 때문에 옵셔널 체이닝을 활용해서 '?.' 앞의 객체가 null이나 undefined 값이라면 검사를 멈추고 undefiend를 반환하도록 했다.

이 방법을 사용하면 문자열에 p와 y가 둘 다 없는 상황에서도 조건식이 (undefined == undefined)로 true 값이 반환되게 된다.

 

옵셔널 체이닝 문법은 아래 링크에서 확인할 수 있다.

https://ko.javascript.info/optional-chaining

 

옵셔널 체이닝 '?.'

 

ko.javascript.info

BELATED ARTICLES

more