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