Programmers

[프로그래머스][JS] 접미사인지 확인하기

winter17 2023. 4. 25. 17:10

https://school.programmers.co.kr/learn/courses/30/lessons/181908

 

프로그래머스

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

programmers.co.kr

풀이 과정

function solution(my_string, is_suffix) {
    var answer = 0;
    const arr = my_string.split('')
    const rev = arr.reverse().join('')
    
    const sufArr = is_suffix.split('')
    const sufRev = sufArr.reverse().join('')
    if (rev.slice(0, sufRev.length) === sufRev){
        answer = 1
    }else{
        answer = 0
    }
    return answer;
}

접미사를 구하는 문제인데 문자열을 배열로 바꾸기 위해 split 메서드 사용하고 reverse로 뒤집었다. 

첫 시도 때 reverse까지만 하고 '===' 두 배열을 비교했는데 계속 오류가 나서 찾아봤더니

'배열 === 배열' 비교는 동일한 객체인지를 판단하는 것

→ 이 말은 즉, 

const arr1 = [1, 2, 3]

const arr2 = [1, 2, 3]

위처럼 같은 배열의 내용을 가졌다고 해서 arr1 === arr2 가 참이 아니라 거짓이 나옴

왜? 할당된 변수의 값이 다르기 때문(=참조하는 주소값이 다르다)  

때문에 join 메서드로 배열 내의 모든 요소를 문자열로 이어 붙여서 반환시켜야 한다!


리뷰

문제가 어려운 건 아닌데 메서드 사용에 있어서 하나만 알고 둘은 몰라서 발생한 오류