20230906 1로 만들기

이셀·2023년 9월 18일
0

1로 만들기

풀이 1

function solution(num_list) {
     let count = 0 
    for (num of num_list){
        let number = num; 
        while (true){ 
            if (number === 1){ 
                break
            }
            if (number % 2 === 0){ 
                number = number / 2
                count += 1 
            }else{ // 홀수일 때
                number = (number - 1) / 2
                count += 1 
            }
        }
    }
    return count
}

풀이 2

function solution(num_list) {
    //    return num_list.map(v => v.toString(2).length - 1).reduce((a, c) => a + c); 로 한줄 풀이 가능
    let answer = 0;

    for(let i = 0 ; i < num_list.length ; i++) {
	@@ -13,4 +14,4 @@ function solution(num_list) {
    return answer;
}

reduce로 한줄로 푼 것들이 있음!
동적계산법으로 푼다는 것은 알았지만 for문 안에 while문이 있어야 풀리는 문제였다...ㅜㅜ

profile
프론트엔드 개발 과정을 기록 중입니다:)

0개의 댓글