SW Expert Academy - 1926. Calkin-Wilf tree 1

2024. 4. 30. 14:05코테 준비!

문제링크 : 

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXgZSOn6ApIDFASW&categoryId=AXgZSOn6ApIDFASW&categoryType=CODE&problemTitle=11688&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

문제를 보고 생각

1. 트리

2. 뭘 계산하는거지 ? (문제를 천천히 읽어보니 답이 있었다.)

t = int(input())
for i in range(t):
    st = input()
    st = list(st)
    L, R = 1, 1
    for j in range(len(st)):
        # print(st[j])
         
        if st[j] == "L":
            L, R = L, R+L
            # print(f'#{i+i}',L, R)
        else:
            L, R = L+R, R
             
    print(f'#{i+1}',L, R)

 

트리의 루트는 1, 1 에서 시작합니다.

그래서 L, R을 1, 1 초기화

st에 입력을 받고,

list로 변환시켰습니다.  [LR] -> [L, R] 이런식으로 하나씩 체크하기위해 변경했습니다.

궁굼하면 print찍어보시면 좋아요

 

그다음 반복문을 통해서 len(st)만큼 반복시켜줍니다.

위 식을 반복문에 대입했습니다.

L = L, L+R

R = L+R , R

 

이러면 끝!

GPT 답비교