파이썬 알고리즘 148번 | [백준 1158번] 요세푸스 문제 - 큐

Yunny.Log ·2022년 5월 12일
0

Algorithm

목록 보기
151/318
post-thumbnail

148. 요세푸스 문제

1) 어떤 전략(알고리즘)으로 해결?

  • 큐 속성을 활용해서 popleft 진행해주는 방식

2) 코딩 설명

  • 큐의 성질을 이용해서 풀어냈다 (fifo)

<내 풀이>


import sys
from collections import deque

n,k= map(int,sys.stdin.readline().split())

seq=[]
qu = deque()

for i in range(n):
    qu.append(i+1)

while qu:
    for i in range(k-1):
        qu.append(qu.popleft())
    seq.append(str(qu.popleft()))

result = ', '.join(s for s in seq)
print("<"+result+">")

<반성 점>

<배운 점>

  1. String.join()으로 리스트의 모든 요소들을 하나의 문자열로 변환
    join()을 이용하면 다음과 같이 리스트를 문자열로 변환할 수 있습니다.

=> 다만 스트링으로 해줘야 적용이 가능

str_list = ['This', 'is', 'a', 'python tutorial']
result = ' '.join(s for s in str_list)
print(result)
Output:

0개의 댓글