개발일기 정답찾기

자바 거꾸로 출력하기 StringBuilder- 유딩동 Tistory 본문

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);
		}
	}
}

lt가 rt보다 작을 때 까지만 진행해주면 된다. 더 안뒤집어도 된다.

 

Comments