IT/알고리즘
자바 거꾸로 출력하기 StringBuilder- 유딩동 Tistory
유딩동
2021. 12. 26. 16:02
1. StringBuilder 이용
import java.util.ArrayList;
import java.util.Scanner;
class Main {
public ArrayList<String> solution(int n, String[] str){
ArrayList<String> answer = new ArrayList<>();
for(String x : str) {
String temp = new StringBuilder(x).reverse().toString();
answer.add(temp);
}
return answer;
}
public static void main(String args[]) {
Main m = new Main();
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(); // 받아올 문자열 갯수
String[] str = new String[n]; // 문자열 갯수만큼 배열 선언
for(int i=0; i<n; i++) { // 배열을 하나씩 넣어준다
str[i] = sc.next();
}
for(String x : m.solution(n,str)) {
System.out.println(x);
}
}
}
StringBuilder란?
StringBuilder는 String과 문자열을 더할 때 새로운 객체를 생성하지 않는다.
데이터에 더하는 방식을 사용하여 메모리 누수도 적고, 속도가 빠르다
그러므로, 많은 연산을 처리할 때 좋다.
ex) StringBuilder 예제
public class Test {
public static void main(String args[]) {
StringBuilder s = new StringBuilder();
s.append("uding");
s.append("dong");
System.out.println(s.toString());
}
}
2. 직접 뒤집어 주기
import java.util.ArrayList;
import java.util.Scanner;
class Main {
public ArrayList<String> solution(int n, String[] str){
ArrayList<String> answer = new ArrayList<>();
for(String x : str) {
char[] c = x.toCharArray(); // char배열로 만들어준다
int lt=0;
int rt=x.length()-1;
while(lt<rt) {
char temp = c[lt];
c[lt] = c[rt];
c[rt] = temp;
lt++;
rt--;
}
String temp = String.valueOf(c); // char형을 String으로 변환해준다
answer.add(temp);
}
return answer;
}
public static void main(String args[]) {
Main m = new Main();
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(); // 받아올 문자열 갯수
String[] str = new String[n]; // 문자열 갯수만큼 배열 선언
for(int i=0; i<n; i++) { // 배열을 하나씩 넣어준다
str[i] = sc.next();
}
for(String x : m.solution(n,str)) {
System.out.println(x);
}
}
}