Lv.0 : 조건에 맞게 수열 변환하기 2 [JavaScript]

2024. 7. 29. 21:03Algorithm/프로그래머스

반응형

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

 

프로그래머스

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

programmers.co.kr

 


문제 풀이

function solution(arr) {
    var arrBefore = [...arr];
    var cnt = 0;
    while(true){
        var arr = arrBefore.map((e)=> e >= 50 && e % 2 == 0 ? e / 2 :  e < 50 && e % 2 == 1 ? e * 2 + 1 : e);
        if(JSON.stringify(arr) == JSON.stringify(arrBefore)) break;
        arrBefore = arr;
        cnt++;
    }
    return cnt;
}

 

이전 배열을 arrBefore에 저장해 두고 새로운 arr를 조건에 맞게 만든 다음 둘을 비교한다.

 

배열의 비교는 [배열1] == [배열2]로 하면 안 된다는 걸 명심

주소값을 비교하는 것이기 때문에 항상 false가 나온다

 

배열.toString() 혹은 JSON.stringify(배열)로 배열을 비교할 수 있다

 

 

 

반응형