-
[백준] 1592번_영식이와친구들Study/알고리즘 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
'Study > 알고리즘' 카테고리의 다른 글
[백준] 1157번_단어공부 (0) 2020.02.06 [백준] 4673번_셀프넘버 (0) 2020.02.06 [백준] 1952번_달팽이2 (0) 2020.02.04 [백준] 1551번_수열의변화 (0) 2020.02.02 [SW Expert] 5789번_현주의상자바꾸기 (0) 2020.01.30