레쭈고 코테

코딩테스트 - 63

정땅미 2025. 3. 23. 23:05

저 이제 취업해야 합니다.....

그래서 저도 이제 바빠도 코딩테스트를 풀어야 하는데요..

뭔가 문제를 많이 풀어서 알고리즘에 적응을 해야 하는데 그게 쉽지가 않은 것 같아요.. ㅠㅠ

그래서 오늘 접한 문제는~

 

이것입니당.

사실 어떻게 풀어야할지 감이 안 와서 지피티형한테 물어봤더니

이진수로 바꿔! -> 1의 개수 세! -> 그리고 비교해

라고 해서.. 딱 명령어대로 코드를 짰습니다.

function solution(n) {
    var answer = 0;
    var n2 = n.toString(2);
    var countn2 = n2.split('1').length - 1;
    answer = n + 1;
    while(true) {
        if(answer.toString(2).split('1').length - 1 === countn2) return answer;
        answer++;
    } 
}

 

저는 약간 알고리즘을 생각해내는 부분은 약한데 코드를 짜는 건 또 금방할 수 있는 것 같아요! ㅠㅠ

이 점이 단점이라고 생각합니다.

하지만 이 코드는 해석 할 건 딱히 없고 쉬웠습니다!

n을 2진수로 바꾼 후 1의 개수를 세주고 결과값 조건이 n보다 크다고 했으니 answer 를 n + 1 부터 돌려줍니다.

만약 1의 개수가 같다면 바로 리턴!!!!!

아니라면 answer 를 하나 씩 늘려가면서 해주면 됩니다.~~

간결! 오늘 코테 끗.

'레쭈고 코테' 카테고리의 다른 글

코딩테스트 - 62  (0) 2025.02.28
코딩 테스트 - 61  (0) 2025.02.11
코딩 테스트 - 60  (0) 2025.02.10
코딩 테스트 - 59  (0) 2025.01.22
코딩 테스트 - 57  (0) 2025.01.12