https://github.com/Dev-Guccin
Guccin
https://github.com/Dev-Guccin
전체 방문자
오늘
어제
  • 분류 전체보기 (172)
    • 알고리즘 (140)
    • 삽질방지 (13)
    • SystemHacking (1)
    • 일상 (4)
    • 개발 (8)
    • 스프링 부트 REST API 개발일지 (5)
    • JPA (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 스택
  • python3
  • DP
  • 다익스트라
  • Python
  • MST
  • 최대공약수
  • 이분 탐색
  • 다이나믹 프로그래밍
  • 재귀
  • 이분탐색
  • 유니온 파인드
  • 파이썬
  • BFS
  • 프로그래머스
  • 그리디
  • 다이나믹프로그래밍
  • 재귀함수
  • 백준
  • 12015
  • 최소힙
  • LIS
  • 백트래킹
  • heapq
  • 최단경로
  • 큐
  • 그래프
  • counter
  • DFS
  • 유클리드호제법

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
https://github.com/Dev-Guccin

Guccin

백준 11866 풀이 (요세푸스 문제 0, 큐)
알고리즘

백준 11866 풀이 (요세푸스 문제 0, 큐)

2021. 3. 10. 20:00

이번 문제를 처음 읽었을 때는 상당히 쉽다고 생각했다. 코드로 로직을 작성하는데에는 문제가 없었지만, 문제는 왜 큐를 사용해야 하는지 이해를 하지 못했다. 그래서 코드는 금방 짰으나 문제가 의도하는 바를 이해하지 못했다.

우선은 내가 짠 코드이다.

from collections import deque
n, k = map(int, input().split())
tmp = [i for i in range(1,n+1)]
ys = []
count = 1
i = 0
while len(tmp) != 0:
    if count == k:
        print(i, tmp)
        ys.append(tmp[i])
        count=1
        tmp.pop(i)
        if i == len(tmp):
            i = 0
        continue
    count+=1
    if i == len(tmp)-1:
        i=0
        continue
    i+=1
print("<", end='')
print(str(ys)[1:-1], end='')
print(">", end='')

코드는 간단하다. count를 세면서 count가 k일때의 인덱스의 값을 리스트에 넣고 마지막에 모두 출력해준다.

문제는 풀었으나 의도를 파악하지 못하여 고수들의 코드를 확인해보았다.

진짜 너무 신기했다.

 

우선 큐에 모든 값을 넣는다.

그리고 index 0부터 시작하여 3번째 값이 나오기 전 값들 2개를 큐 뒤로 보낸다.

그리고 index 1부터 시작하여 3번째 값이 나오기 전 값들 2개를 큐 뒤로 보낸다.

그리고 index 2부터 시작하여 3번째 값이 나오지 전 값들 2개를 큐 뒤로 보낸다.

......

마지막으로 index n-k 부터 시작하여 3번째 값이 나오기 전 값들 2개를 큐 뒤로 보낸다.

그러면 <3,6,2,7,5,1,4> 값의 요세푸스값을 구할 수 있다.

'알고리즘' 카테고리의 다른 글

백준 5430 풀이 (AC, 큐, 파이썬)  (0) 2021.03.11
백준 1966 풀이 (프린터 큐, 큐, deque)  (0) 2021.03.10
백준 2164 파이썬 풀이 (카드2, 큐)  (0) 2021.03.09
백준 18258 파이썬 풀이 (큐 2, deque)  (0) 2021.03.09
백준 17298 풀이 (오큰수, 스택)  (0) 2021.03.08
    '알고리즘' 카테고리의 다른 글
    • 백준 5430 풀이 (AC, 큐, 파이썬)
    • 백준 1966 풀이 (프린터 큐, 큐, deque)
    • 백준 2164 파이썬 풀이 (카드2, 큐)
    • 백준 18258 파이썬 풀이 (큐 2, deque)
    https://github.com/Dev-Guccin
    https://github.com/Dev-Guccin
    https://github.com/Dev-Guccin

    티스토리툴바