알고리즘
[Python] 백준 1592번: 영식이와 친구
내 코딩
2023. 2. 26. 01:20
반응형
코드
N, M, L = map(int, input().split())
n_list = []
for i in range(N):
n_list.append(0)
a = 0
count = 0
while True:
n_list[a % N] += 1
if n_list[a % N] == M:
print(count)
break
count += 1
a += L
설명
인원수 N, 공을 M번 받으면 끝나는 횟수 M, 다음 공이 몇 번째 옆으로 전달될 숫자 L 을 입력받는다.
각 인원수가 몇 번의 공을 받았는지 세기위해서 빈 리스트를 만들어서 N번만큼 반복하여 0으로 차있는 N개 요소가 들어있는 리스트를 만든다.
숫서를 돌리기 위해 a를 0으로 만들어놓고 몇 번 돌아갔는지 세기 위하여 count를 0으로 만들어 놓는다.
while문으로 무한 반복을 시킨다.
첫 시작을 받은 친구가 1로 시작하기 때문에 n_list에 0번째에 1을 더해준다.
이 때 몇 번째가 될지는 a에 인원수 만큼 나눈 나머지를 구하면 몇 번째 사람인지 알 수 있다.
만약 n_list에 해당 순서번째 사람이 M번 받으면 count를 출력하고 끝낸다.
count에 1을 더해서 공이 받아진 숫자를 계산하고 a에 L만큼 더해서 L번째만큼 옆으로 전달될 수 있게 한다.