https://gall.dcinside.com/board/view/?id=programming&no=2046676


입력값이 n 일때 출력값을 m이라 하자ㅇㅅㅇ


만약 n이 5라면 m은 2가 되겠지ㅇㅅㅇ


이걸 n -> m 이라 하면ㅇㅅㅇ


2n -> 2m 이 된다ㅇㅅㅇ



왜냐면ㅇㅅㅇ


입력값 n일때 출력이 m이란 말은 n개의 수열에서 m번째 숫자가 정답이란 말임ㅇㅅㅇ


역시 n이 5일때 예시를 들면ㅇㅅㅇ


1 2 3 4 5 에서 2번째 숫자가 정답이란 말이고ㅇㅅㅇ


2n인 10에서 루프를 한번 돌면ㅇㅅㅇ


2 4 6 8 10 이 되며 위의 수열에서 2를 곱한 수열이 됨ㅇㅅㅇ


여기서 두번째 숫자가 정답이니 m은 4가 됨ㅇㅅㅇ



그럼 홀수를 찾아서 2n-1 일땐 어떻게 될까ㅇㅅㅇ


여기서도 n에 5를 넣으면 9이고 루프를 한번 돌면ㅇㅅㅇ


9 2 4 6 8 이 되고 두번째인 2가 정답이 됨ㅇㅅㅇ


여기서 2n-1 일 경우 2n-1 인 숫자가 맨 앞에 가서 수열이 뒤로 한칸씩 밀리는걸 볼수있음ㅇㅅㅇ


따라서 2n-1 -> 2m - 2 가 됨ㅇㅅㅇ



그리고 최소 입력값인 2를 보면 2 -> 2인데ㅇㅅㅇ


2n-1 -> 2m-2 에서 m에 2를 넣으면 2가 됨ㅇㅅㅇ


2n -> 2m 에서 최대 값은 두배씩 되고ㅇㅅㅇ


따라서 n이 증가할 수록 m은 규칙성을 띄는데ㅇㅅㅇ


이 수열은 2부터 2^x 까지 2의 등차수열을 가짐ㅇㅅㅇ