코딩테스트/프로그래머스

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. 회고

머리로는 알겠는데 코드를 짜려니 쉽지 않았다. 아직 구현 능력에 있어서 많은 연습이 필요해 보인다.

반응형