개발일기
[PCCP 모의고사 #1] 3번 - 유전법칙 (자바) 본문
https://school.programmers.co.kr/learn/courses/15008/lessons/121685
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
package src.Week6.ProgrammersBean;
public class Bean {
static String[] popList = {"RR", "Rr", "Rr", "rr"};
public static void main(String[] args) {
int [][] problems = {{3,5},{3,8}};
for(String str : solution(problems)){
System.out.println("str = " + str);
}
}
static String[] solution(int[][] queries){
String[] answer = new String[queries.length];
for(int i=0;i< queries.length; i++){
int gen = queries[i][0];
int num = queries[i][1];
answer[i] = recursive(gen, num);
}
return answer;
}
static String recursive(int gen, int num){
String target = popList[1];
switch(gen){
case 1: return target;
case 2:
target = popList[num-1];
return target;
default:
gen = gen -1;
int parentNum = (int)Math.ceil((double)num / (double)4);
int parentsChildNum = num%4 -1;
target = recursive(gen, parentNum);
if(target.equals(popList[0]) || target.equals(popList[3])){
return target;
}
target = popList[parentsChildNum%4==-1? 3 : parentsChildNum];
return target;
}
}
}
해당 문제는 dp로 해당 부분만 판단하여 푸는 문제이다.
해당 부분은 일부부만 판단하여 진행하면 나머지 세대는 전부다 동일한 패턴으로 해결된다.
RR , rr 인 경우는 비교할 필요가 없으며 2 3번째만 판단하면 된다. 이때, 4개씩 떨어지므로, 나머지 4를 구하면 완벽하다.
해당 문제는 문제를 이해하는 시간이 오래걸렸을 뿐 막상 이해하니깐 쉽게 풀었다.
'Algorithm > 알고리즘' 카테고리의 다른 글
프로그래머스 성격 유형 검사하기 (0) | 2024.04.04 |
---|---|
프로그래머스 둘만의 암호 자바 (1) | 2024.04.03 |
Baekoon 11003 최소값 찾기 (1) | 2024.04.03 |
Baekjoon 1148 단어만들기 자바 (0) | 2024.04.03 |
핸드폰 번호 가리기 (0) | 2024.04.02 |