99클럽 코테 스터디 24일차 TIL [LeetCode] Reordered Power of 2 (Java)

민경·2024년 6월 21일

문제

[LeetCode] Reordered Power of 2

풀이

주어진 정수 n을 각 자릿수를 재배열해서 2의 제곱수를 만들 수 있는지 찾는 문제

  • n을 문자 배열로 변환한 후 정렬한다.
  • 정수 범위 내 2의 제곱을 구하기 위해 i의 범위는 0 ~ 30으로 설정한다.
  • Math.pow()를 사용해 2의 i 제곱을 구한고 powOf2 변수에 저장한다.
  • powOf2를 문자 배열로 변환한 후 정렬한다.
  • digitspowOf2Digits가 동일하다면 주어진 n으로 2의 제곱을 만들 수 있다는 의미이므로 true를 반환한다.
  • 그렇지 않으면, false를 반환한다.

정답 코드

class Solution {
    public boolean reorderedPowerOf2(int n) {
        char[] digits = String.valueOf(n).toCharArray();
        Arrays.sort(digits);
        
        for (int i = 0; i < 31; i++) {
            int powOf2 = (int) Math.pow(2, i);
            char[] powOf2Digits = String.valueOf(powOf2).toCharArray();
            Arrays.sort(powOf2Digits);
            
            if (Arrays.equals(digits, powOf2Digits)) {
                return true;
            }
        }
        
        return false;
    }
}
profile
강해져야지

0개의 댓글