목록문제 (388)
sm 기술 블로그
import java.util.*; import java.io.*; class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); StringBuilder sb = new StringBuilder(); int N = sc.nextInt(); int K = sc.nextInt(); Deque queue = new ArrayDeque(); for (int i = 1; i
from collections import deque import sys input = sys.stdin.readline N, K = map(int, input().split()) queue = deque(list(i for i in range(1, N+1))) answer = [] while queue: for i in range(K-1): queue.append(queue.popleft()) answer.append(queue.popleft()) print("") 문제요약 요세푸스 순열을 완성하시오. https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=attractorlim&logNo=221030930874 요세푸스문제 Joseph..
import java.util.*; import java.io.*; class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Deque queue = new ArrayDeque(); int N = sc.nextInt(); for (int i = 1; i
from collections import deque import sys input = sys.stdin.readline N = int(input()) queue = deque(list(i for i in range(1, N+1))) while(len(queue) != 1): queue.popleft() queue.append(queue.popleft()) print(queue.pop()) 문제요약 N장의 카드가 있는데 제일 위의 카드는 버리고 버리고 난 뒤 제일 위의 카드를 맨아래로 보내는 식으로 한장의 카드가 남을 때 까지 반복한다. 설명 큐를 이용한 쉬운 문제이다. 여기서 제일 위는 제일 앞을 뜻하므로 큐를 이용한다. queue = deque(list(i for i in range(1, N+1)))..