2021/11/01 월요일

Gong Intaek·2021년 11월 1일
0

일상

목록 보기
143/1031
post-thumbnail

TIL


오늘 한 일

  • 휴식
  • leetcode
    • Reordered Power of 2. (medium)

문제 풀이

Reordered Power of 2. (medium)

주어진 수에 존재하는 숫자들의 자리를 재배열하여 2의 제곱승의 값이 나올수 있는지 판별 한는 문제. (첫자리는 0이 올수 없다.)

언뜻 먼저 든 생각은 자리수를 문자 화하여 만들어 낼수 있는 모든 조합을 바탕으로 찾아 내는 방법 이었다. 하지만 찾는 수는 결국 2의 지수승으로 정해져 있으므로 해당 자리수를 가진 2의 지수만을 따로 정리 할수 있을것 같았고, 그렇게 찾은 값들의 숫자 종류와 수를 비교함으로써 주어진 숫자로 변환이 가능한지를 확인 할수 있다고 생각 하였고 해당 방향으로 문제 풀이를 진행하였다.

먼저 주어진 숫자의 자리수를 가진 2의 지수를 찾기 위해 주어진 숫자를 문자화하여 길이를 변수화 시켰고 숫자 2부터 제곱을 하여 해당 자리수에 근접한 지수를 찾고 그렇게 찾아진 지수를 한단계씩 변화 하면서 자리수가 일치하는 최소지수과 최대지수을 돌려주는 함수를 작성하였다.

이후 입력된 수에 있는 숫자들을 객체화하여 저장하고 최소 지수부터 최대 지수까지 순회 하면서 구한 수의 숫자들도 개체화 하여 서로 비교를 하였고, 한쪽에 해당 키값이 없거나 주어진 숫자의 갯수가 다르면 숫자를 재배열 하여도 2의 지수승의 형태로 변환 할수 없다고 판별하였고 다음 지수값으로 넘어가게 하였다.

별다른 문제가 없을시 재배열이 가능한 하나의 수를 찾은 셈이므로 해당 시점에서 판별을 종료, 재배열이 가능하다는 결과를 돌려 주었다.


오늘은...

휴식

profile
개발자가 되기위해 공부중

0개의 댓글