언젠가는 펼쳐 볼 아카이브

[Programmers] 조건에 맞게 수열 반환하기 2 본문

IT/Programmers

[Programmers] 조건에 맞게 수열 반환하기 2

개발자희망생고롸파덕 2024. 2. 21. 17:23

사용언어 : javascript

lv.0

#문제

출처 : 프로그래머스

#제출코드

function solution(arr) {
  let oldArr = arr;
  let x = 1;

  while (true) {
    let newArr = oldArr.map((item) => {
      if (item >= 50 && item % 2 === 0) {
        return Math.floor(item / 2);
      }
      if (item < 50 && item % 2 !== 0) {
        return item * 2 + 1;
      } else {
        return item;
      }
    });

    if (oldArr.toString() === newArr.toString()) {
      return x - 1;
    }

    x++;
    oldArr = newArr;
  }
}

 

#다른사람 풀이

function solution(arr) {
    var answer = 0;
    let before = [-1];

    while(!arr.every((e,idx) => e == before[idx])) {
        before =[...arr];

        arr = arr.map(e => {
            if(e >= 50 & e % 2 == 0)
                return e / 2;
            if(e < 50 & e % 2 != 0)
                return e * 2 + 1;
            return e;
        })
        answer++;
    }
    return answer - 1;
}

'IT > Programmers' 카테고리의 다른 글

[Programmers] 가장 가까운 글자  (0) 2024.02.28
[Programmers] 대충 만든 자판  (0) 2024.02.28
[Programmers] 수열 구간 쿼리 1  (0) 2024.02.21
[Programmers] 할 일 목록  (0) 2024.02.21
[Programmers] 최댓값과 최솟값  (0) 2024.02.19