百駿1057トーナメント
5689 ワード
トーナメント
問題は白駿で確認できます.
✔方法
2-1. 目標L、K自然生存
2-2. 奇数個不戦勝
✔コード
import sys
from collections import deque
def solution(arr, cnt):
new_arr = deque()
for _ in range(len(arr)//2):
left = arr.popleft()
right = arr.popleft()
if left == 0 and right == 0:
print(cnt)
exit()
new_arr.append(min([left, right]))
else:
if arr:
new_arr.append(arr.popleft())
if len(new_arr) != 1:
solution(new_arr, cnt+1)
else:
print(cnt)
if __name__ == "__main__":
N, K, L = map(int, input().split())
arr = [1] * N
arr[K-1] = 0
arr[L-1] = 0
arr = deque(arr)
solution(arr, 1)
チップ
数学的に言えば、コードをより簡潔に書くことができます.
Nが半分に減る.
KとLのインデックスも半減した.
KとLが同じインデックスを持つ回数を計算します.
問題を解決することができます.
Reference
この問題について(百駿1057トーナメント), 我々は、より多くの情報をここで見つけました https://velog.io/@aszxvcb/백준-1057-토너먼트テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol