TIL
20240225
casylm
2025. 2. 25. 22:50
자바 코딩테스트
package org.example.infrenJavaCodingTest;
import java.util.ArrayList;
import java.util.Scanner;
public class chap2_4 {
// public ArrayList<String> solution(int n, String[] str){
// ArrayList<String> answer = new ArrayList<>();
// for(String x : str){
// String tmp = new StringBuilder(x).reverse().toString(); // 뒤집은 후 다시 String 화
// answer.add(tmp);
// }
//
// // String = 서로 더하거나 , replace 시 새로운 객체가 생성됨
// // StringBuilder는 처음 만든 객체로 활용
// // 메모리 낭비 없음의 장점 -> String 연산이 많을 때 유용
// return answer;
// }
public ArrayList<String> solution(int n, String[] str){
ArrayList<String> answer = new ArrayList<>();
for(String x : str){
char[] s = x.toCharArray(); // String 을 문자 배열로 만듦
int lt = 0 , rt = x.length()-1;
char temp;
while(lt < rt){
temp = s[rt];
s[rt] = s[lt];
s[lt] = temp;
lt++;
rt--;
}
// vlaueOf는 static 메소드이기 때문에 클래스. 으로 접근가능
String tmp = String.valueOf(s);
answer.add(tmp);
// 왜 안됨?
//answer.add(s.toString());
}
return answer;
}
public static void main(String[] args) {
chap2_4 T = new chap2_4();
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
String[] str = new String[n];
for(int i = 0; i<n; i++){
str[i] = kb.next();
}
for(String x : T.solution(n,str)){
System.out.println(x);
}
}
}