JAVA

BAEKJOON(백준) Queue - 11866번 JAVA / PYTHON CODE

violetisme 2023. 1. 29. 23:42

 

JAVA CODE

시간초과에러

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
import java.util.Deque;
import java.util.LinkedList;
 
public class Main {
 
	public static void main(String[] args) throws IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		Deque<Integer> q = new LinkedList<>();
		
        //숫자 입력받기
		String[] str = br.readLine().strip().split(" ");
        
		int N = Integer.parseInt(str[0]);
		int K = Integer.parseInt(str[1]);

		int count = 1;
	
		for(int j=0; j<N; j++)
			q.offer(j+1);
		
		StringBuilder sb = new StringBuilder();
		sb.append('<');

		
		while(q.size() > 1) {
			q.addLast(q.poll());
			count++;
			
			if(count == K) {
				sb.append(q.poll()).append(", ");
				count = 1;
			}
		}
	
		sb.append(q.poll()).append('>');
		System.out.println(sb);
	}
}

 

해결된 코드

(while문 수정)

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Deque;
import java.util.LinkedList;
 
public class Main {
 
	public static void main(String[] args) throws IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
        //큐 선언
		Deque<Integer> q = new LinkedList<>();
		
		String[] str = br.readLine().strip().split(" ");
		int N = Integer.parseInt(str[0]);
		int K = Integer.parseInt(str[1]);

	
		for(int j=0; j<N; j++)
			q.offer(j+1);
		
		StringBuilder sb = new StringBuilder();
		sb.append('<');

		
		while(q.size() > 1) {
			for(int i=0; i<K-1; i++)
				q.addLast(q.poll());
			
			sb.append(q.poll()).append(", ");
		}
	
		sb.append(q.poll()).append('>');
		System.out.println(sb);
	}
}

 

 

파이썬 코드

import sys

queue = []
res = []
L = []

L = sys.stdin.readline().strip().split(" ")
N = int(L[0])
K = int(L[1])

for i in range(N) :
    queue.append(i+1)

res.append("<")

while(len(queue) > 1):
    for i in range(K-1) :
        queue.append(queue[0])
        queue.remove(queue[0])

    res.append(str(queue[0]))
    res.append(", ")
    queue.remove(queue[0])

res.append(str(queue[0]))
res.append(">")

for i in range(len(res)):
    print(res[i], end="")