제가 공부한 내용을 정리하는 블로그입니다.
아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁
SWEA 1256 K번째 접미어입니다.
해당 문제도 솔직히 효율적인 코드인지는 잘 모르겠습니다만, 제가 활용한 알고리즘을 정리하겠습니다.
포인트
Java의 substring() method를 활용하여, 접미어를 구하고, Collections.sort를 진행합니다.
그 이후 k번째 접미어를 찾아줍니다.
소스코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Q1256 {
private static int tc, K;
private static List<String> postfix;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
tc = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
for (int t = 1; t <= tc; t++) {
K = Integer.parseInt(br.readLine());
String line = br.readLine();
postfix = new ArrayList<>();
for (int i = 0; i < line.length(); i++) {
postfix.add(line.substring(i));
}
Collections.sort(postfix);
sb.append("#").append(t).append(" ")
.append(postfix.size() >= K ? postfix.get(K-1) : "none").append("\n");
}
System.out.println(sb);
}
}
코드 설명
postfix = new ArrayList<>();
for (int i = 0; i < line.length(); i++) {
postfix.add(line.substring(i));
}
Collections.sort(postfix);
- index가 i부터인 substring을 postfix에 넣어주고, 정렬을 진행해줍니다.
- 그 이후 k번째 접미어를 찾고 만약 없으면 none을 반환해줍니다.
'코딩테스트 > SWExpert' 카테고리의 다른 글
[코딩테스트] SWEA 6782 현주가 좋아하는 제곱근 놀이(Java) (0) | 2025.07.02 |
---|---|
[코딩테스트] SWEA 7793 오! 나의 여신님(Java) (2) | 2025.07.02 |
[코딩테스트] SWEA 1259 금속막대(Java) (1) | 2025.07.01 |
[코딩테스트] SWEA 1265 달란트2(Java) (1) | 2025.06.30 |
[코딩테스트] SWEA 1248 공통조상(Java) (1) | 2025.06.30 |