728x90
📌 문제 링크
https://www.acmicpc.net/problem/9093
📌 문제 개요
여러 줄의 문자열이 주어질 때
각 줄마다 단어 단위로 뒤집어서 출력하는 문제이다.
단, 문장의 순서는 유지하고
각 단어 내부 문자만 뒤집어야 한다.
📌 접근 방법
이 문제는 복잡한 알고리즘이 아닌 문자열 처리 문제이다.
- 입력 문자열을 공백 기준으로 나눈다.
- 각 단어를 뒤집는다.
- 다시 공백으로 이어서 출력한다.
📌 핵심 아이디어
- 문장 전체 reverse ❌
- 단어별 reverse ⭕
I am happy → I ma yppah
📌 전체 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
StringBuilder result = new StringBuilder();
while (T-- > 0) {
String[] words = br.readLine().split(" ");
for (String word : words) {
StringBuilder sb = new StringBuilder(word);
result.append(sb.reverse()).append(" ");
}
result.append("\n");
}
System.out.print(result);
}
}
📄 정리
- 문자열 문제는 분리 → 가공 → 재조합 흐름
- StringBuilder.reverse() 활용하면 매우 간단
- 시간복잡도: O(N) (문자 전체 한 번 순회)
728x90
'코테(Solved.ac + Programmers)' 카테고리의 다른 글
| 백준 13909 창문 닫기 JAVA 풀이 (수학, O(1)) (0) | 2026.03.24 |
|---|---|
| 백준 8979 올림픽 JAVA 풀이 (정렬, 구현, 시간복잡도) (0) | 2026.03.23 |
| 백준 1924 2007년 JAVA 풀이 (구현, 시간복잡도) (0) | 2026.03.21 |
| [백준] 2822번 : 점수 계산 (JAVA) (0) | 2026.03.20 |
| [백준] 10867번 : 중복 빼고 정렬하기 (JAVA) (0) | 2026.03.19 |