반응형
https://www.acmicpc.net/problem/11866
요세푸스 문제 0
1번부터 N번까지 N명의 사람이 원을 앉아 이뤄 K번째 사람을 제거하는 문제
100% 내 생각으로 풀었는가?
→ O
원을 그리고 3명 간격으로 사람을 빼낸다고 생각하면 쉽게 해결할 수 있던 문제
내가 푼 정답 코드
import sys
from collections import deque
N, K = map(int, sys.stdin.readline().split())
queue = deque()
result = []
for i in range(1,N+1):
queue.append(i) # 문제 조건, N까지의 숫자를 K간격으로 뺄거니까 큐에 N까지 숫자 삽입
while queue:
for _ in range(K-1): #K-1번까지
queue.append(queue.popleft()) # 맨앞에 요소를 빼서 맨뒤로 보내기
result.append(queue.popleft()) # K번째 요소를 빼서 결과물인 result에 넣어주자
#출력 형식 맞춰서 넣어주기
print("<",end ='')
for j in range(N-1):
print('%d, '%result[j],end='')
print(result[-1],end='')
print(">")
큐의 기본 개념을 이해하고 있다면 쉽게 풀수 있는 문제였으나, 출력형식 모양 맞춰준다고 틀렸습니다를 몇번 받은 문제..
느낀점
지금 딱 queue의 개념에 대해서 배우고 사용해보는 단계로 배워보고 있다.
딱 완전히 Queue의 기본에 대해서 이해하면 쉬울 문제여서 어렵지않게 풀었는데, 딱 큐와 관련된 이론 설명을 듣고나서 문제를 풀어보니 쉽게쉽게 풀리는게 좋았다고 생각한다.
완전 기본 문제 급이라서 한번쯤 풀어보면 좋을 문제!
반응형
'알고리즘 풀이 > 백준' 카테고리의 다른 글
[백준 2447] 별 찍기 - 10 (python) (0) | 2023.02.22 |
---|---|
[백준 1300] K번째 수 (python) (0) | 2023.02.22 |
[백준 9935] 문자열 폭발(python) (0) | 2023.02.15 |
[백준 1874] 스택 수열 (python) (0) | 2023.02.12 |
[백준 17070] 파이프 옮기기1 (python) (0) | 2023.02.12 |
댓글