문제
https://school.programmers.co.kr/learn/courses/30/lessons/181881
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
일단 원하는 결과가 나올때까지 어떤 동작을 반복해야 되니까 => while로 풀기 아니면 재귀함수를 만들자!! 라는 생각이 들었다
조건에 맞게 배열을 도는 함수를 만든다음에. 원하는 결과가 나올때까지 함수를 타고 타고 타고 태워준다.
그러다가 배열과 그 다음 배열이 완전히 일치할때 리턴을 통해 카운트를 반환해준다.
function solution(arr) {
let count = 0;
const loopArr = (arr, count) => {
let arr1 = arr.map((v) => {
if (v >= 50 && v % 2 === 0) {
return v / 2;
} else if (v < 50 && v % 2 === 1) {
return v * 2 + 1;
} else {
return v;
}
});
if (arr1.every((v, i) => v === arr[i])) return count;
count++;
return loopArr(arr1, count);
};
return loopArr(arr, count);
}
'개발 > 알고리즘(코딩테스트)' 카테고리의 다른 글
프로그래머스, 자바스크립트) 구슬을 나누는 경우의 수 (0) | 2024.02.25 |
---|---|
프로그래머스, 자바스크립트) 배열 만들기 4 (0) | 2024.02.25 |
프로그래머스, 자바스크립트) 수열과 구간 쿼리 4 (0) | 2024.02.19 |
프로그래머스, 자바스크립트) 문자열 여러 번 뒤집기 (1) | 2024.02.18 |
프로그래머스, 자바스크립트) 조건 문자열 (0) | 2024.02.17 |