정말 요로코롬 생각해보다가 번뜩 떠오른 큐!! k-1개 빼놓고 다시 뒤에 붙이고, k번째를 pop()해가면 되지 않을까~~ 아이디어는 정답!! 하지만 내 코드.. 리스트로 구현하고 바로 오류 빠밤 ~.~..
n, k = map(int, input().split())
# 1~n번 사람
people = [i for i in range(1,n+1)]
result = []
while people:
for _ in range(k-1):
people.append(people.pop(0))
result.append(people.pop(0))
print("<", end="")
for i in range(len(result)-1):
print(result[i], end=", ")
print(str(result[len(result)-1])+">")
👆 리스트로 활용한 코드
시간초과 떠버렸다~~ 는 것 ㅠ.ㅠ 그럼 뭐 더 빠른 deque() 써야지 하핳 ...성공!! 오예~
알고리즘 플로우는 아이디어대로 구현하면 된다!
근데 여기서 조심해야 할 점은 리스트로 쓰면 시간초과 떠버리니까 큐를 사용해야 하면 deque 쓰는 버릇을 들여야겠다는 것-! 왕창 빨라~~
from collections import deque 기억하자 ㅇㅅㅇ!!
from collections import deque
n, k = map(int, input().split())
# 1~n번 사람
people = deque()
for i in range(1, n+1): people.append(i)
result = []
while people:
for _ in range(k-1):
people.append(people.popleft())
result.append(people.popleft())
print(str(result).replace('[', '<').replace(']', '>'))