[백준/Python] - 11866번 요세푸스 순열

2025. 4. 9. 22:30·백준[파이썬]
728x90
반응형
SMALL

https://www.acmicpc.net/problem/11866

 

제출코드

import sys
from collections import deque
input = sys.stdin.readline
N, K = map(int, input().strip().split())
N_list = deque([i for i in range(1,N+1)])
ans_list = []

while N_list:
    for _ in range(K-1):
        N_list.append(N_list.popleft())
    ans_list.append(N_list.popleft())
print("<", end = "")
for i in range(N):
    if i == N-1:
        print(ans_list[i], end = ">")
    else:
        print(ans_list[i], end = ", ")

맨 처음에 로직을 짤 때는 그냥 list에 append 하고 숫자가 기준값을 넘으면 나머지 연산을 하여 나눠주는 방식으로 했다. 하지만 너무 복잡해지고 예제 출력값도 안나와서 그냥 구글링 해서 풀었다...

 

여기서 알아낸 점이 deque였다.


deque란?

deque는 양쪽에서 값을 넣고 뺄 수 있는 스택과 큐의 기능이 둘 다 가능한 파이썬 객체이다. 이걸 줄여서 덱이라고한다.

큐처럼 사용 가능하고, 스택처럼도 사용이 가능하다.  

from collections import deque

dq= deque('soccer')
print(dq)

deque출력

1.스택 구현:  append, pop

스택은 LIFO(Last In First Out)로 마지막에 들어온 값이 나온다.

from collections import deque

dq= deque('soccer')
print(dq)

dq.append('love')
print(dq)
dq.pop()
print(dq)

 

2.큐 구현: popleft() appendleft()

큐는 FIFO로 왼쪽에서 들어오고 오른쪽에서 나간다.

from collections import deque

dq= deque('soccer')
print(dq)

dq.appendleft('love')
dq.pop()
print(dq)

 

3. 덱 구현

덱은 double ended enque를 줄여서 말한 것으로 deque이다. 양방향으로 값을 넣고 뺄 수 있다.

덱은 front에서 추가 삭제가 이뤄지는 것은 물론 rear에서도 추가 삭제가 이루어져 양방향

양방향 연결리스트로 덱을 구현하는 경우가 많다.

덱의 구성 핵심함수는

  • 앞으로 넣기(appendleft())
  • 뒤로 넣기(append())
  • 앞으로 빼기(popleft())
  • 뒤로 빼기(pop())

이렇게 구성되어 있다.

728x90
반응형
LIST

'백준[파이썬]' 카테고리의 다른 글

[백준/Python] - 25192 인사성 밝은 곰곰이  (0) 2025.04.15
[백준/Python] - 26069 붙임성 좋은 총총이  (0) 2025.04.14
[백준/Python] - 18258번 큐 2  (0) 2025.04.06
[백준/Python] - 9012번 괄호  (0) 2025.04.05
[백준/Python] - 11478번 서로 다른 부분 문자열의 개수  (0) 2025.04.02
'백준[파이썬]' 카테고리의 다른 글
  • [백준/Python] - 25192 인사성 밝은 곰곰이
  • [백준/Python] - 26069 붙임성 좋은 총총이
  • [백준/Python] - 18258번 큐 2
  • [백준/Python] - 9012번 괄호
코린이 파닥거리기
코린이 파닥거리기
    반응형
    250x250
  • 코린이 파닥거리기
    코린이 파닥거리기의 블로그
    코린이 파닥거리기
  • 전체
    오늘
    어제
    • 분류 전체보기 (116) N
      • 백준[파이썬] (47) N
      • Spring (31)
      • CS (1)
      • 자바 (4)
      • 백준[자바] (20)
      • 프로그래머스 (5)
      • 토이프로젝트 (1)
      • SWEA (2)
      • MSA (4) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백준
    JWT
    SpringBoot
    스프링 부트와 AWS로 혼자 구현하는 웹 서비스
    JPA
    프로그래머스
    컨테이너
    SWEA
    db
    재귀
    누적합
    파이썬
    자바
    spring
    MSA
    Java
    코딩테스트
    스프링부트
    스프링
    테스트코드
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코린이 파닥거리기
[백준/Python] - 11866번 요세푸스 순열
상단으로

티스토리툴바