[SWEA] 5176. [Python S/Wトラブルシューティング基本]8日間-バイナリナビゲーション[D 2]
4410 ワード
📚 質問する
https://swexpertacademy.com/main/learn/course/subjectDetail.do?courseId=AVuPDN86AAXw5UW6&subjectId=AWOVJ-_6qfsDFAWg
完全にバイナリツリーです.中尉は巡視して,順番に値切る.
従って、中位サイクルは、cntを増加させ、vが1の場合、cnt値およびvがn/2の場合、cnt値を記憶して出力する.
📒 コード#コード#
def in_order(v): # 완전 이진 트리 탐색(중위 순회)
global cnt, result
if v <= n: # n까지 확인
in_order(v * 2)
cnt += 1 # 확인할 때마다 cnt + 1
if v == 1: # 조상 노드 값 담기
result[0] = cnt
elif v == n // 2: # 조상 노드 // 2 값 담기
result[1] = cnt
in_order(v * 2 + 1)
t = int(input())
for tc in range(1, t + 1):
n = int(input())
cnt = 0 # 노드에 저장된 값
result = [0, 0] # 루트 노드에 저장된 값, n // 2 노드에 저장된 값
in_order(1)
print(f'#{tc}', *result)
🔍 結果:Pass
Reference
この問題について([SWEA] 5176. [Python S/Wトラブルシューティング基本]8日間-バイナリナビゲーション[D 2]), 我々は、より多くの情報をここで見つけました https://velog.io/@yunhlim/SWEA-5176.-파이썬-SW-문제해결-기본-8일차-이진탐색-D2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol