[c++] Programmers - PCCP 모의고사 1회 3번 유전법칙

모험가·2022년 9월 16일
0

Algorithm

목록 보기
10/17

PCCP 모의고사 1회 3번
[PCCP 모의고사 #1] 유전법칙

점화식을 세워서 푸는 문제! 난이도는 쉬운편.
백준으로 치면 실버 2~ 정도의 문제일 듯 함
좋아하는 형식의 문제라서 굳이 올린다.

[세대,차례] 의 형식으로 주어진다.
n번째 세대의 p번째 차례의 완두콩의 유전형식을 구하는 문제.
정말 단순하다!!

코드

#include <string>
#include <vector>
#include <cmath>

using namespace std;

int cong[5]={0,0,1,1,2};

int dfs(int a, int b){
    
    if (a == 2){
        return cong[b];
    }
    
    int x = b/4;
    int y = b%4;
    if (y!=0)
        x++;
    
    int n = dfs(a-1,x);
    
    if (n == 0)
        return 0;
    else if (n == 2)
        return 2;
    else {
        if (y == 1)
            return 0;
        else if (y == 0)
            return 2;
        else
            return 1;
    }
}

vector<string> solution(vector<vector<int>> queries) {
    vector<string> answer;
    
    for (int i=0; i<queries.size(); i++){
        int a = queries[i][0];
        int b = queries[i][1];
        
        if (a == 1){
            answer.push_back("Rr");
            continue;
        }
        
        int n = dfs(a,b);
        
        if (n == 0)
            answer.push_back("RR");
        else if (n == 2)
            answer.push_back("rr");
        else
            answer.push_back("Rr");
            
    }
    
    return answer;
}
profile
부산 싸나이의 모험기

0개의 댓글