2개 이하로 다른 비트
프로그래머스 2개 이하로 다른 비트
프로그래머스 2개 이하로 다른 비트
2021.05.20프로그래머스에 새롭게 보이는 문제가 있어 도전하였습니다. 처음 문제에 접근할 때는 다음 로직으로 프로그래밍 하였습니다. 1) 주어진 숫자 N에 대해 이진수로 변경한다. 2) 주어진 숫자 N에 대해 순차적으로 1씩 증감시키면서 (1)에서 변경한 이진수와 비교하여 자릿수 숫자의 차이가 2개 이하인 경우에 대해 answer를 return 한다. 위 로직을 수행할 경우 시간 초과가 발생하게 됩니다. 생각해보면 numbers의 모든 수가 10의 15승이기 때문에 최악의 경우 10의 15승이 될 수 있기 때문에 사실상 정답이 될 수 없는 로직입니다. 그 다음 문제를 접근할 때는 규칙에 주목하였습니다. 문제에서 제공되는 예시를 가지고 생각해봤습니다. 7=0111 에 대해 다른 비트의 개수는 11=1011 이 됩니다...