코드
import sys
from collections import deque
input = sys.stdin.readline
n, k, m =map(int, input().split())
people = deque(i for i in range(1,n+1))
permutation = []
while people:
if (permutation and not len(permutation)%m): # permuation에 요소가 있고, m으로 나눴을 때 나머지가 0
people.reverse() # reverse는 원래 리스트를 변형한다. 복사본을 쓰고싶다면 reversed()나 [::-1] 이용
cnt = 1
while cnt < k:
mk = people.popleft()
people.append(mk)
cnt += 1
permutation.append(str(people.popleft()))
print(*permutation, sep='\n')
파이썬으로 제출했을 때 시간초과가 난다. pypy3으로 제출하면 되는데, 파이썬으로 해결할 수 있는 코드도 만들어봐야겠다.
'백준' 카테고리의 다른 글
[백준] 9012번 괄호 파이썬 코드 (0) | 2023.11.06 |
---|---|
[백준] 28066번 타노스는 요세푸스가 밉다 파이썬 코드 (0) | 2023.11.06 |
[백준] 1158번 요세푸스 문제 파이썬 코드 (1) | 2023.11.06 |
[백준] 11866번 요세푸스 문제 0 파이썬 코드 (0) | 2023.11.06 |
[백준] 2473번 세 용액 파이썬 코드 (1) | 2023.11.03 |
코드
import sys
from collections import deque
input = sys.stdin.readline
n, k, m =map(int, input().split())
people = deque(i for i in range(1,n+1))
permutation = []
while people:
if (permutation and not len(permutation)%m): # permuation에 요소가 있고, m으로 나눴을 때 나머지가 0
people.reverse() # reverse는 원래 리스트를 변형한다. 복사본을 쓰고싶다면 reversed()나 [::-1] 이용
cnt = 1
while cnt < k:
mk = people.popleft()
people.append(mk)
cnt += 1
permutation.append(str(people.popleft()))
print(*permutation, sep='\n')
파이썬으로 제출했을 때 시간초과가 난다. pypy3으로 제출하면 되는데, 파이썬으로 해결할 수 있는 코드도 만들어봐야겠다.
'백준' 카테고리의 다른 글
[백준] 9012번 괄호 파이썬 코드 (0) | 2023.11.06 |
---|---|
[백준] 28066번 타노스는 요세푸스가 밉다 파이썬 코드 (0) | 2023.11.06 |
[백준] 1158번 요세푸스 문제 파이썬 코드 (1) | 2023.11.06 |
[백준] 11866번 요세푸스 문제 0 파이썬 코드 (0) | 2023.11.06 |
[백준] 2473번 세 용액 파이썬 코드 (1) | 2023.11.03 |