본문 바로가기
Coding Test/Programmers

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

by song.ift 2023. 1. 27.
문자열 S는 2진수로 표현된 양의 정수입니다.

해당 정수에 아래의 연산을 수행합니다.

 1. 만약 숫자가 짝수인 경우 해당 값의 2를 나눈다.
 2. 만약 숫자가 홀수인 경우 1을 뺀다.

연산의 결과가 0이 될때까지 반복해서 수행했을 때 수행된 연산 횟수 N을 구하는 함수를 작성하세요.

[입력]
 2진수가 표현된 String S

[출력]
 결과가 0이 될때까지 수행한 연산 횟수 N

매개변수 : String S
리턴타입 : int

 

function solution(S)
{
  var s = S.replace(/(^0+)/, "");
  var n = 0;

  if (s != "" && s.lnegth != 0)
  {
    n = 1;

    n += (s.match(/1/g).length - 1) * 2;
    n += s.match(/0/g) == null ? 0 : s.match(/0/g).length;
  }

  return n;
}

댓글