[PCCP 실전모의고사 #1_03] 유전법칙

Soorim Yoon·2022년 10월 15일
0

문제

https://school.programmers.co.kr/learn/courses/14760/lessons/125485

코드

  • 꼭 다시 풀어볼 것!
def solution(queries):
    answer = []
    child = ["RR", "Rr", "Rr", "rr"]
    
    def back(n, p):
        if n == 1:          # 질문한 값이 1세대라면 Rr을 리턴
            return "Rr"
        
        # 질문한 값이 1세대가 아닌 경우 재귀함수를 통해 아래를 반복
        parent = back(n-1, p//4)        # 새로운 부모는 세대-1, 번째//4 (몫) 값이다
        if parent == "Rr":          # 부모가 잡종인 경우
            return child[p%4]       # 번째%4 (나머지 연산) 한 값이 해당 child의 형질이다
        else:       # 부모가 순종인 경우
            return parent       # 부모 형질 = 자식 형질
            
    
    for q in queries:
        n, p = q        # 이차원 배열 queries 안의 각 배열 q에 관한 n, p 값
        result = back(n, p-1)       # 인덱스 0부터 시작하므로 p-1 한 값을 back 함수에 넘김
        answer.append(result)
    
    return answer
profile
👩🏻‍💻 AI를 좋아하는 IT학부생

0개의 댓글