컴굥일지
[Programmers/프로그래머스][C++] 유전법칙 (PCCP 모의고사 1회 3번) 본문
반응형
문제
https://school.programmers.co.kr/learn/courses/15008/lessons/121685?language=cpp
문제 내용
완두콩의 세대와, 해당 세대에서 몇 번째 개체인지를 입력받아, 완두콩의 형질을 출력하면 되는 문제이다.
문제 풀이
가계도를 자세히 살펴보면, 재귀적인 부분을 찾을 수 있다.
완두콩이 자신의 형질을 알기 위해서는 부모의 형질을 알아야 하고, 부모의 형질은 그 윗세대의 형질을 알아야 한다.
코드
#include <string>
#include <vector>
#include <iostream>
using namespace std;
string calcBean(int level, int num){ // 몇레벨의 몇번째 개체
if(level == 1){
return "Rr";
}else if(level==2){
if(num==1) return "RR";
else if(num==4) return "rr";
else return "Rr";
}
int next_num= (num%4) ? num/4+1 : num/4;
string parent = calcBean(level-1, next_num);
if(parent == "Rr"){
int next= (num%4) ? num%4 : 4;
return calcBean(2, next);
}else return parent; //부모가 RR이나 rr이면 자식도 똑같은 형질임
}
vector<string> solution(vector<vector<int>> queries) {
vector<string> answer;
for(int i=0;i<queries.size();i++){
string result=calcBean(queries[i][0], queries[i][1]);
answer.push_back(result);
}
return answer;
}
반응형
'알고리즘 > 코테 문제' 카테고리의 다른 글
[Programmers/프로그래머스][C++] 신입사원 교육 (PCCP 모의고사 2회 2번) (0) | 2023.08.19 |
---|---|
[Programmers/프로그래머스][C++] 실습용 로봇 (PCCP 모의고사 2회 1번) (0) | 2023.08.19 |
[Programmers/프로그래머스][C++] 체육대회 (PCCP 모의고사 1회 2번) (0) | 2023.08.19 |
[Programmers/프로그래머스][C++] 외톨이 알파벳 (PCCP 모의고사 1회 1번) (0) | 2023.08.19 |
[BOJ/백준 16234][C++] 인구 이동 (0) | 2023.08.17 |
Comments