-
[프로그래머스] 종이접기문제 풀이 2020. 5. 26. 00:37
풀이)
규칙이 존재하는 문제다.
중간값은 항상 0이고, i번째 접는 횟수라면 ( i - 1 접는 상태 값 + 중간 0 + i -1 접는 상태 대칭되는 값)이다.
아래 예시를 보면 더 이해가 쉬울 것이다. 중간값 0을 빨간색으로 뒀을때
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
-> 2번째 값이 0 0 1일때
3번째 값은 0 0 1 + 0 + 0 1 1
코드)
#include <string> #include <vector> using namespace std; vector<int> solution(int n) { vector<int> answer; for(int i = 0 ; i < n ; i++) { answer.push_back(0); // 이전값에 중간값 0 더하기 for(int j = answer.size()-2 ; j >= 0 ; j--) { //이전값과 대칭되는 값 answer.push_back(1-answer[j]); } } return answer; }
'문제 풀이' 카테고리의 다른 글
[프로그래머스] 문자열 압축 (0) 2020.05.26 [프로그래머스] 카카오 프렌즈 컬러링북 (0) 2020.05.26 [프로그래머스] 스킬트리 (0) 2020.05.25 [프로그래머스]124 나라의 숫자 (0) 2020.05.23 [프로그래머스] 징검다리 (0) 2020.05.22