공부하기/백준

[Java] 백준 풀기 5363 - 요다

XEV 2024. 2. 28. 23:55

자바 백준 5363번

브론즈 2

https://www.acmicpc.net/problem/5363

 

5363번: 요다

첫째 줄에 문장의 수 N이 주어진다. 둘째 줄부터 N개의 줄에는 각 문장이 주어진다. 문장의 길이는 100글자 이내이다. 단어의 개수는 3개 이상이다.

www.acmicpc.net

 

 

 

 

 

문제 보기

분류: 구현, 문자열

 

 

 

 

 

코드 풀이

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt(); // 문장의 수 입력
sc.nextLine(); // 개행 문자 소비
// YodaTranslator 객체 생성
YodaTranslator translator = new YodaTranslator();
// 입력된 문장의 수만큼 반복
for (int i = 0; i < N; i++) {
String sentence = sc.nextLine(); // 문장 입력
// 요다의 말로 번역
String yodaSentence = translator.translateToYoda(sentence);
// 요다의 말 출력
System.out.println(yodaSentence);
}
}
}
// 요다 번역기 클래스
class YodaTranslator {
// 요다의 말로 번역하는 메서드
public String translateToYoda(String sentence) {
// 공백을 기준으로 문장을 단어로 분리
String[] words = sentence.split(" ");
// 요다의 말을 저장할 StringBuilder 객체 생성
StringBuilder yodaTalk = new StringBuilder();
// 두 번째 단어부터 마지막 이전 단어까지 요다의 말에 추가
for (int j = 2; j < words.length; j++) {
// 단어와 공백 추가
yodaTalk.append(words[j]).append(" ");
}
// 첫 번째와 두 번째 단어를 요다의 말에 추가
yodaTalk.append(words[0]).append(" ").append(words[1]);
// 문자열로 변환하고 앞뒤 공백 제거 후 반환
return yodaTalk.toString().trim();
}
}