728x90
https://www.acmicpc.net/problem/21966
알고리즘 설명
문제 설명
- 입력 길이가 25 이하인 경우:
- 문자열 SSS를 그대로 출력합니다.
- 입력 길이가 25 초과인 경우:
- SSS의 앞에서부터 11글자, 뒤에서부터 11글자를 제외한 나머지 부분이 모두 같은 문장에 속한다면, 생략한 부분을 '...'으로 바꿔서 출력합니다.
- 그렇지 않다면, SSS를 앞에서부터 9글자, 뒤에서부터 10글자만 남기고 중간을 '......'으로 바꿔서 출력합니다.
코드 설명
메서드 활용해서 풀자.
import java.io.*;
public class Main {
public static int N;
public static String s;
public static String res = "";
public static BufferedReader br;
public static void main(String[] args) throws IOException {
br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
s = br.readLine();
sol(N, s);
System.out.println(res);
}
private static void sol(int N, String s) {
if (N <= 25) {
// 길이가 25 이하인 경우
res = s;
return;
}
// 길이가 25 초과인 경우
// 가운데 부분 (12글자부터 N-12글자까지) 추출
String tmp = s.substring(12, N - 12);
if (!tmp.contains(".")) {
// 가운데 부분에 마침표가 없으면
res = s.substring(0, 11) + "..." + s.substring(N - 11, N);
return;
}
// 가운데 부분에 마침표가 있으면
res = s.substring(0, 9) + "......" + s.substring(N - 10, N);
}
}
반응형
'백준 문제풀이 코드저장소 > Silver' 카테고리의 다른 글
Baekjoon 11478. 서로 다른 문자열의 개수 / Java (0) | 2024.07.03 |
---|---|
Baekjoon 16951. 블록 놀이 / Java (0) | 2024.07.03 |
Baekjoon 4948. 베르트랑 공준 / Java (1) | 2024.07.02 |
Baekjoon 1912. 연속합 / Java (0) | 2024.07.02 |