반응형
문제
풀이
더보기
from collections import deque
import sys
queue = deque()
array = []
n, k = map(int, sys.stdin.readline().split())
for i in range(1, n+1) :
queue.append(i)
while queue :
for i in range(k-1) :
queue.append(queue.popleft())
array.append(queue.popleft())
print("<", end='')
for i in range(len(array)-1) :
print(array[i], end=', ')
print(array[-1], end='')
print(">")
후기
구현 문제는 풀다보니 라이브러리를 얼마나 능숙하게 사용하는지가 중요한 것 같다.
파이썬 자체도 잘 모르고 부끄럽지만 자료구조에도 능숙하지 않다보니
처음에는 'deque'와 같은 자료 구조없이 처음부터 풀어보려고 했는데
정답은 맞춰도 계속해서 런타임 에러가 발생해서
'deque' 자료 구조를 이용해 문제를 풀기로 했다.
'while queue'의 경우 queue에 데이터가 있는 동안 돌아가기 때문에
해당 문제를 풀 때는 'while True'를 사용하고 break로 빠져나오는 것보다
간단한 방식으로 문제를 풀 수 있다.
반응형
'내가 공부하려고 올리는 > 알고리즘' 카테고리의 다른 글
백준 구현 알고리즘 - 1966번(파이썬) (0) | 2022.05.11 |
---|---|
백준 구현 알고리즘 - 11723번(파이썬) (0) | 2022.05.11 |
백준 알고리즘 - 그리디 알고리즘(1931번/1026번/1541번/2217번/13305번/10610번) (0) | 2022.04.25 |
모두를 위한 컴퓨터 과학(CS50) - 정렬 알고리즘 (0) | 2022.04.23 |
모두를 위한 컴퓨터 과학(CS50) - 검색 알고리즘 (0) | 2022.04.21 |
댓글