[ν μ½ν μ½1.5 4-07] μμΈνΈμ€ λ¬Έμ
π‘ν μ½ν μ½ μμ¦ 1.5 4ν λͺ¨μ on-site λ¬Έμ νμ΄μ λλ€. (2025.02.15)
λ¬Έμ
μΆμ²: λ°±μ€ - μμΈνΈμ€ λ¬Έμ
λ΄μ©
μμΈνΈμ€ λ¬Έμ λ λ€μκ³Ό κ°λ€.
1λ²λΆν° Nλ²κΉμ§ Nλͺ μ μ¬λμ΄ μμ μ΄λ£¨λ©΄μ μμμκ³ , μμ μ μ K(≤ N)κ° μ£Όμ΄μ§λ€. μ΄μ μμλλ‘ Kλ²μ§Έ μ¬λμ μ κ±°νλ€. ν μ¬λμ΄ μ κ±°λλ©΄ λ¨μ μ¬λλ€λ‘ μ΄λ£¨μ΄μ§ μμ λ°λΌ μ΄ κ³Όμ μ κ³μν΄ λκ°λ€. μ΄ κ³Όμ μ Nλͺ μ μ¬λμ΄ λͺ¨λ μ κ±°λ λκΉμ§ κ³μλλ€. μμμ μ¬λλ€μ΄ μ κ±°λλ μμλ₯Ό (N, K)-μμΈνΈμ€ μμ΄μ΄λΌκ³ νλ€. μλ₯Ό λ€μ΄ (7, 3)-μμΈνΈμ€ μμ΄μ <3, 6, 2, 7, 5, 1, 4>μ΄λ€.
Nκ³Ό Kκ° μ£Όμ΄μ§λ©΄ (N, K)-μμΈνΈμ€ μμ΄μ ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
κΈ°λ‘νκΈ°
π‘ μ΄λκΉμ§ μκ°ν΄λ΄€λμ§ λ¨κ³μ μΌλ‘ κΈ°λ‘ν΄λ΄ λλ€.
μ΄λ€ μκ³ λ¦¬μ¦μ μ μ©νλ € νλμ?
μν νλ₯Ό μ μ©νλ€.
μ μ© κ·Όκ±°λ 무μμΈκ°?
"μμ μ΄λ£¨λ©΄μ μμμλ€."
λ¬Έμ νμ΄ κ³Όμ μμ ν΄λΉ μκ³ λ¦¬μ¦μ μ΄λ»κ² μ½λλ‘ κ΅¬ννλ € νλμ?
λͺ¨λλ¬ μ°μ°μ μ¬μ©νμ§ μκ³ deque, enqueλ₯Ό νμ©νλ€.
νμ΄
νμ΄ μκ°
μμ μκ° | μ’ λ£ μκ° | μ΄ μμ μκ° |
---|---|---|
15λΆ |
λ¬Έμ λΆμ
μ μ½ μ¬ν νμ & μ λ ₯κ° λΆμ
π‘ μ λ ₯κ°μ λΆμνλ©΄ λ¬Έμ μμ μꡬνλ μκ³ λ¦¬μ¦μ μκ° λ³΅μ‘λλ₯Ό κ°μ μ μΌλ‘ νμ ν μ μμ΅λλ€.
μ λ ₯
첫째 μ€μ Nκ³Ό Kκ° λΉ μΉΈμ μ¬μ΄μ λκ³ μμλλ‘ μ£Όμ΄μ§λ€. (1 ≤ K ≤ N ≤ 5,000)
μΆλ ₯
μμ μ κ°μ΄ μμΈνΈμ€ μμ΄μ μΆλ ₯νλ€.
μμ μ λ ₯1
7 3
μμ μΆλ ₯1
<3, 6, 2, 7, 5, 1, 4>
μμ¬ μ½λ μμ±
π‘ μμ¬ μ½λλ λμ μ€μ¬μΌλ‘ μμ±νλ κ²μ΄ μ€μν©λλ€.
π‘ μμ¬ μ½λλ λ¬Έμ ν΄κ²° μμλ‘ μμ±ν©λλ€.
π‘ μμ¬ μ½λλ₯Ό μΆ©λΆν ν μ€νΈν΄λ΄ λλ€.
solution(n, k) {
// 1234567 -> 456712 -> 71245 -> 4571 -> 145
// enque, deque νμ©
// kλ²μ§Έ μλ dequeλ§ κ·Έ μΈλ deque ν enque
}
ꡬν
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayDeque;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(bufferedReader.readLine(), " ");
StringBuilder answer = new StringBuilder("<");
int n = Integer.parseInt(st.nextToken());
int k = Integer.parseInt(st.nextToken());
ArrayDeque<Integer> queue = new ArrayDeque<>();
for (int i = 0; i < n; i++) {
queue.add(i + 1);
}
// 1234567 -> 456712 -> 71245 -> 4571 -> 145
int count = 1;
int front;
while (!queue.isEmpty()) {
front = queue.poll();
if (count == k) {
answer.append(front);
if (!queue.isEmpty()) {
answer.append(", ");
}
count = 1;
continue;
}
queue.add(front);
count++;
}
answer.append(">");
System.out.println(answer);
}
}