몸과 마음이 건전한 SW 개발자

프로그래머스 [Lv. 2] 마법의 엘리베이터 {언어 : JavaScript} [다시 풀어 보기] 본문

알고리즘/다시 풀어 보기

프로그래머스 [Lv. 2] 마법의 엘리베이터 {언어 : JavaScript} [다시 풀어 보기]

스위태니 2024. 4. 18. 19:48

문제 링크

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

 

프로그래머스

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

programmers.co.kr

정답 코드

function solution(storey) {
    let answer = 0;
    while (storey) {
        const remainder = storey % 10;
        let share = Math.floor(storey/10);
        if (remainder > 5) {
        	// 6 이상
            answer += (10 - remainder);
            share += 1;
        } else if (remainder < 5) {
        	// 4 이하
            answer += remainder;
        } else {
        	// 5인 경우
            if (share % 10 >= 5) {
            	// 몫의 1의 자리수가 5 이상인 경우
                share += 1;
            };
            answer += remainder;
        };
        storey = share;
    };
    return answer;
}

풀이 방법

  • 위의 풀이와 같다.

느낀점

  • 수학적 센스가 필요했던 문제