https://programmers.co.kr/learn/courses/30/lessons/62049
규칙찾는 문제 꿀잼!
n | result |
1 | 0 |
2 | 0,0,1 |
3 | 0,0,1,0,0,1,1 |
4 | 0,0,1,0,0,1,1,0,0,0,1,1,0,1,1 |
일단 result를 보면 중앙의 0을 기준으로 우측 숫자들은 좌측 숫자를 대칭시킨 후 0=>1, 1=>0으로 바꾼 것이다.
그리고 좌측 숫자는 n-1일 때의 result와 동일하다.
이를 이용해서 코드를 짜면 된다.
class Solution {
public int[] solution(int n) {
int[] answer = new int[(int) (Math.pow(2, n) - 1)];
for (int i = 2; i <= n; i++) {
int mid = (int) Math.pow(2, i - 1) - 1;
for (int j = 1; j <= mid; j++) {
answer[mid + j] = (answer[mid-j] + 1) % 2;
}
}
return answer;
}
}
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 예산 - Java (0) | 2020.05.19 |
---|---|
[프로그래머스] 지형 이동 - Java (0) | 2020.05.18 |
[프로그래머스] 베스트앨범 - Java (0) | 2020.05.18 |
[프로그래머스] 전화번호 목록 (0) | 2020.05.17 |
[프로그래머스] 완주하지 못한 선수 (0) | 2020.05.17 |