백준 / 토너먼트 / 1057
Question
문제링크
Silver 3
Logic
기본 구조 : loop
1. 인원 수만큼 1을 채워 리스트를 만든다
2. 두 사람의 위치를 0으로 마크한다.
3. 반복문을 2개씩 끊어 비교한다.
4-1. 1번만 0일 경우 0을 추가.
4-2. 2번만 0일 경우 0을 추가.
4-3. 둘 다 0일 경우 스위치 변수를 이용해 두 반복문 종료.
4-4. 셋 모두 아닐 경우 1을 추가.
5. 반복문이 종료될 때 까지 level + 1
6. level 출력.
Code
from sys import stdin
N,a,b = map(int,stdin.readline().rstrip().split())
data = [1 for _ in range(1,N+1)]
data[a-1] = 0
data[b-1] = 0
level = 1
end = False
while True:
tmp = []
N = len(data)
for i in range(0,N,2):
if N%2==1 and i==N-1 : tmp.append(data[-1])
elif data[i] == 0 :
if data[i+1]== 0 :
end = True
break
else : tmp.append(0)
elif data[i+1] == 0 : tmp.append(0)
else : tmp.append(1)
if end : break
data = tmp[:]
level += 1
print(level)
Author And Source
이 문제에 관하여(백준 / 토너먼트 / 1057), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@swany0509/백준-토너먼트-1057저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)