[백준/파이썬] 1592번 영식이와 친구들 풀이
업데이트:
문제 정보
- 문제 출처: 백준 온라인 저지
- 문제 링크: 1592번 영식이와 친구들
- 문제풀이 코드 GitHub 링크
- 제출 언어: Python 3
풀이
문제
공을 받은 횟수의 홀짝에 따라
왼쪽/오른쪽으로 L칸씩 공을 넘기며,
어떤 사람이 M번 받을 때까지 던진 횟수를 구하는 문제입니다.
코드
n, m, l = map(int, input().split())
people = [0] * n
i = 0
people[i] += 1
while max(people) < m:
if people[i] % 2 > 0: i = (i + l) % n
else:
pm = 1
if i - l < 0: pm = -1
i = abs(i - l) % n * pm
people[i] += 1
print(sum(people) - 1)
설명
배열 people로 각 사람의 받은 횟수를 관리하고,
현재 위치 i에서 홀수면 시계방향, 짝수면 반시계방향으로 이동합니다.
누군가 M번 받는 순간까지 누적 전달 횟수(총 받은 횟수 - 1)를 출력합니다.
댓글남기기