저 이제 취업해야 합니다.....
그래서 저도 이제 바빠도 코딩테스트를 풀어야 하는데요..
뭔가 문제를 많이 풀어서 알고리즘에 적응을 해야 하는데 그게 쉽지가 않은 것 같아요.. ㅠㅠ
그래서 오늘 접한 문제는~

이것입니당.
사실 어떻게 풀어야할지 감이 안 와서 지피티형한테 물어봤더니
이진수로 바꿔! -> 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 |