본문 바로가기
Coding Test/Programmers

[Programmers Test] (1회차 코딩테스트) No 4. BinaryDistance

by song.ift 2023. 1. 20.
[문제 설명]
 0 이상의 정수 n이 주어질 때, n의 이진 표현에서 인접한 두 1 사이의 가장 긴 거리를 출력하는 함수, solution을 완성해주세요.
 예를 들어, n이 주어질 때의 결과는 다음과 같습니다.
 > n : 5
 > n의 이진 표현 : 101
 > 결과 : 2

 > n : 11
 > n의 이진 표현 : 1011
 > 결과 : 2


[입력 형식]
 - n은 0 이상 10^9 이하의 정수입니다.


[출력 형식]
 - n의 이진 표현에서 인접한 두 1 사이의 가장 긴 거리를 출력합니다.

 

const solution = (n) => {
    let itv = 1,
        max = 1;

    n.toString(2)
        .split("")
        .forEach((e) => {
            if (e == 0) {
                ++itv;
                max = max < itv ? itv : max;
            } else itv = 1;
        });

    return max;
};

댓글