https://www.acmicpc.net/problem/9037
def check(N, C):
for i in range(N):
if C[i] %2 == 1:
C[i] += 1
return len(set(C)) == 1 # True 또는 False
def share(N, C):
temp = [0] * N
for i in range(N):
if C[i] % 2 == 1:
C[i] += 1
C[i] //= 2
temp[(i+1) % N] += C[i]
for j in range(N):
C[j] += temp[j]
def func():
N, C = int(input()), list(map(int, input().split()))
count = 0
while not check(N, C):
share(N, C)
count += 1
print(count)
T = int(input())
for _ in range(T):
func()
func함수 안에서
처음 순환을 시작할때 홀수인지를 체크하는 check함수와
사탕의 반을 오른쪽에 앉은 아이에게 주는 share함수를 부른다
'알고리즘 > 백준 (Pyhthon)' 카테고리의 다른 글
[알고리즘] 백준 2484 주사위 네개 / python (0) | 2020.03.13 |
---|---|
[알고리즘] 백준 2480 주사위 세개 / python (0) | 2020.03.13 |
[알고리즘] 백준 17224 APC는 왜 서브태스크 대회가 되었을까? / python (0) | 2020.02.28 |
[알고리즘] 백준 1932 정수 삼각형 / python, DP (0) | 2020.02.28 |
[알고리즘] 백준 1120 문자열 / python (0) | 2020.02.28 |