코딩테스트/프로그래머스
PCCP 모의고사 1회 - 유전법칙
feel2
2023. 2. 18. 10:29
반응형
1. 문제 정의
2. 문제 접근
계속해서 세대 수를 줄여가는 재귀함수를 짜주면 될 것 같다.
3. 문제 풀이
1. rec_fun 을 정의한다.
2. 세대 수를 계속 줄여가는 로직을 구현한다.
3. 부모가 RR 이거나 rr 일 경우 그대로 리턴해 준다.
4. 코드
import java.util.*;
class Solution {
public String rec_fun(int generation, int idx) {
if(generation == 1) return "Rr";
String parent = rec_fun(generation-1, (idx-1)/4+1);
if(parent.equals("RR") || parent.equals("rr")) return parent;
int group = (idx-1) % 4;
switch(group) {
case 0 : return "RR";
case 1, 2 : return "Rr";
default : return "rr";
}
}
public String[] solution(int[][] queries) {
String[] answer = new String[queries.length];
for(int i = 0; i < queries.length; i++) {
String ans = rec_fun(queries[i][0], queries[i][1]);
answer[i] = ans;
}
return answer;
}
}
5. 회고
머리로는 알겠는데 코드를 짜려니 쉽지 않았다. 아직 구현 능력에 있어서 많은 연습이 필요해 보인다.
반응형