문제
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
풀이
예전에 백준에서 비슷한 문제를 풀었던 것 같다. Python과 다르게 Java의 Deque에는 rotate 메서드가 없기 때문에 직접 구현해줘야 했다.
import java.io.*;
import java.util.*;
public class Solution {
private static Deque<Character> deque;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int T = Integer.parseInt(br.readLine());
for (int t = 1; t <= T; t++) {
String[] input = br.readLine().split(" ");
int N = Integer.parseInt(input[0]);
int K = Integer.parseInt(input[1]);
String str = br.readLine();
deque = new ArrayDeque<>();
for (int i = 0; i < N; i++) {
deque.add(str.charAt(i));
}
Set<Integer> set = new HashSet<>();
for (int i = 0; i < N; i++) {
rotate();
Object[] tmp = deque.toArray();
StringBuilder sb = new StringBuilder();
for (int j = 0; j < N / 4; j++) {
if (tmp[j] instanceof Character) {
sb.append((Character) tmp[j]);
}
}
set.add(Integer.parseInt(sb.toString(), 16));
}
List<Integer> list = new ArrayList<>();
for (Integer n: set) {
list.add(n);
}
Collections.sort(list, Collections.reverseOrder());
System.out.println("#" + t + " " + list.get(K-1));
}
bw.flush();
bw.close();
br.close();
}
private static void rotate() {
Character c = deque.removeLast();
deque.addFirst(c);
}
}'PS > SWEA' 카테고리의 다른 글
| SWEA 26504 - MST 만들기 [Java] (0) | 2026.08.13 |
|---|---|
| SWEA 5249 - 최소 신장 트리 [Python] (0) | 2026.08.13 |
| SWEA 3124 - 최소 스패닝 트리 [Java] (0) | 2026.08.04 |
| SWEA 7701 - 염라대왕의 이름 정렬 [Java] (0) | 2026.07.29 |
| SWEA 5247 - 연산 [Java][Python] (0) | 2026.07.29 |