
(Java) 프로그래머스 - 2개 이하로 다른 비트
·
코딩 테스트
생각보다 시간이 꽤 걸렸던 문제였다. 처음에는 n+1 수부터 2진법으로 변환해서 비트가 2개 이하로 같다면 answer 배열에 넣어주는 것으로 풀었었다. 테스트 케이스가 통과되는 것을 보면서 쉬운 문제였구나 싶었는데 어림도 없지.. 10번 11번 케이스에서 시간 초과가 났다. 어떻게 접근해야 할지 환참을 고민했는데 질문하기 탭에서 numbers 배열의 값을 짝수와 홀수로 생각하면 된다는 힌트를 얻어서 풀이에 성공했다. 로직은 numbers 배열의 값을 짝수와 홀수로 나누는 것에서부터 시작한다. 짝수라면 2진법으로 변환했을때 가장 마지막 자리가 0으로 끝나므로 가장 마지막 자리를 1로 바꿔주면 10진법에서 1이 커진 숫자이기 때문이다. 홀수라면 한번 더 생각을 해야 한다. 2진법으로 변환했을 때 숫자가 1..