본문 바로가기

problem solving

[프로그래머스]종이접기

종이접기는 한번 접을 때마다 0모양이 추가되고 기존의 역순으로 더해지는 패턴을 가진다.

(A4 용지를 직접 접어보면 쉽게 패턴을 구할 수 있는 문제)

#include <string>
#include <vector>
 
using namespace std;
 
vector<int> solution(int n) {
    vector<int> answer;
    
    string str = "0", reverse_str = "";
        
    for(int i = 0; i < n - 1; i++) {
        reverse_str = "";
        for(int j = 0; j < str.length(); j++) {
            if(str[j] == '0') {
                reverse_str = '1' + reverse_str;
            } else {
                reverse_str = '0' + reverse_str;
            }
        }
        str =  str + '0' + reverse_str;
    }
    
    for(int i = 0; i < str.length(); i++) {
        if(str[i] == '0') {
            answer.push_back(0);    
        } else {
            answer.push_back(1);
        }
    }
    return answer;
}
cs

'problem solving' 카테고리의 다른 글

[BOJ]13460번: 구슬 탈출2  (0) 2020.07.19
[BOJ]15683번: 감시  (0) 2020.07.18
[프로그래머스]추석 트래픽  (0) 2020.07.17
[프로그래머스]N진수 게임  (0) 2020.07.14
[프로그래머스]파일명 정렬  (0) 2020.07.13