Written by Jieun
Home
  • 전체 (129)
    • Git (1)
    • React, Next (57)
    • HTML & CSS (2)
    • JavaScript, TypeScript (24)
    • Node.js (11)
    • MongoDB (4)
    • AWS (2)
    • 코딩테스트, 알고리즘 (17)
    • etc (8)
    • 일상 (1)
블로그 내 검색

Written by Jieun

👩🏻‍💻 내 마음대로 Today I Learned

  • 코딩테스트, 알고리즘

    [프로그래머스] 이진 변환 반복하기 (JS)

    2023. 8. 26.

    by. 지은이: 김지은

    728x90

     

    문제설명

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

     

    프로그래머스

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

    programmers.co.kr

     

    제한사항

    • s의 길이는 1 이상 150,000 이하입니다.
    • s에는 '1'이 최소 하나 이상 포함되어 있습니다.

     

    입출력 예

    s result
    "110010101001" [3,8]
    "01110" [3,3]
    "1111111" [4,1]

     

    문제풀이

    function solution(s) {
        let count = 0;
        let zero = 0;
        
       // s가 "1"만 남을 때 까지 반복하기
        while(s !== "1") {
            let sLength = s.length
            s = s.replace(/0/g, '')
            let zeroLength = s.length;
            s = zeroLength.toString(2)
            zero += sLength - zeroLength
            count++
        }
        return [count, zero];
    }

    주어진 문자열에 0을 없애고 0을 없앤 길이에 이진변환을 하는데 이진 변환한 값이 "1"이 될 때 까지 계속 반복하기

    나는 toString() 메소드를 그냥 문자열 반환하는 걸로만 생각했는데 Number객체에 사용할 땐 문자 또는 진수로 변환하는 역할이었다..!

     

    count는 몇 번 이진 변환을 가했는지, zero는 0의 개수를 담을 변수. while로 s가 "1"만 남을 때 까지 계속 반복하도록 했다.

    replace함수에 정규표현식을 사용해서 0이 있는 자리를 제거하고 원래 s의 길이와 0을 뺀 길이를 변수에 담는다.

    toString() 기본은 10진수로, 괄호 안에 2를 넣어 10진수를 2진수로 변환한다.

    0의 개수는 s의 원래 길이에서 2진 변환한 개수를 빼주고, count도 증가시켜준 후 while 루프가 끝나면 배열로 반환한다.

     

     

    저작자표시 (새창열림)

    '코딩테스트, 알고리즘' 카테고리의 다른 글

    [프로그래머스] 영어 끝말잇기 (JS)  (0) 2023.09.04
    [프로그래머스] 올바른 괄호 (JS / Stack)  (0) 2023.08.27
    [프로그래머스] 이상한 문자 만들기 (JS)  (0) 2023.08.23
    [프로그래머스] 문자열 내 마음대로 정렬하기 (JS)  (0) 2023.08.19
    [프로그래머스] 삼총사 (JS)  (0) 2023.08.18

    댓글

    관련글

    • [프로그래머스] 영어 끝말잇기 (JS) 2023.09.04
    • [프로그래머스] 올바른 괄호 (JS / Stack) 2023.08.27
    • [프로그래머스] 이상한 문자 만들기 (JS) 2023.08.23
    • [프로그래머스] 문자열 내 마음대로 정렬하기 (JS) 2023.08.19
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

Designed by Nana
블로그 이미지
지은이: 김지은

티스토리툴바