Study/알고리즘
[백준] 1592번_영식이와친구들
혤리
2020. 2. 4. 21:53
문제 링크 : https://www.acmicpc.net/problem/1592
1592번: 영식이와 친구들
일단 1번이 공을 잡는다. 1번은 공을 한 번 잡았기 때문에, 공을 3번에게 던진다. 3번은 공을 한 번 잡았기 때문에, 공을 5번에게 던진다. 5번은 2번에게 던지고, 2번은 4번에게 던진다. 4번은 1번에게 던진다. 1번은 이제 공을 두 번 잡았기 때문에, 공을 4번에게 던진다. 4번은 2번에게 던지고, 2번은 5번에게 던지고, 5번은 3번에게 던지고, 마지막으로 3번은 1번에게 던진다. 1번은 이제 공을 세 번 잡았기 때문에, 게임은 끝난다.
www.acmicpc.net
n,m,l = map(int,input().split())
people = {}
for i in range(1,n+1):
people[i] = 0
cnt = 0
p = people[1] = 1
while people[p]!=m:
# 홀수
if people[p]%2!=0:
p = n if (p+l)%n == 0 else (p+l)%n
# 짝수
else:
p = (p-l)
if p<=0:
p += n
people[p] += 1
cnt+=1
print(cnt)
처음에 딕셔너리를 이용해 풀었는데 리스트로 푼게 더 깔끔한 것 같다.
n,m,l = map(int,input().split())
people = [0 for _ in range(n)]
cnt = 0
p = 0
while True:
people[p] += 1
if people[p] == m:
print(cnt)
break
elif people[p]%2!=0:
p = (p+l)%n
else:
p = (p+n-l) % n
cnt += 1