min's devlog

[string] 단어 뒤집기(StringBuilder이용법 또는 직접뒤집기) 본문

til/Algorithm

[string] 단어 뒤집기(StringBuilder이용법 또는 직접뒤집기)

값진 2021. 7. 6. 16:00

import java.util.*;
class Main {	
	public ArrayList<String> solution(int n, String[] str){
		ArrayList<String> answer=new ArrayList<>(); 
		for(String x : str){
			String tmp=new StringBuilder(x).reverse().toString();
			answer.add(tmp);
		}
		return answer;
	}

	public static void main(String[] args){
		Main T = new Main();
		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);
		}
	}
}

 

import java.util.*;
class Main {	
	public ArrayList<String> solution(int n, String[] str){
		ArrayList<String> answer=new ArrayList<>(); 
		for(String x : str){
			char[] s=x.toCharArray();
			int lt=0, rt=x.length()-1;
			while(lt<rt){
				char tmp=s[lt];
				s[lt]=s[rt];
				s[rt]=tmp;
				lt++;
				rt--;
			}
			String tmp=String.valueOf(s);
			answer.add(tmp);
		}
		return answer;
	}

	public static void main(String[] args){
		Main T = new Main();
		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);
		}
	}
}

리턴받는 것 : string을 원소로 갖는 ArrayList에
뒤집은 단어들을 넣어서 Arraylist리턴 (ArrayList<string>)

String 받는 것 : main
뒤집기 : solution 함수

stringbuilder : 문자열다루는 함수, 생성자이다
reverse : x를뒤집음 (tostring화 시켜야 string객체로 들어감)

왜 string이 있음에도 stringbuilder를 쓸까?
string 연산 작업이 많을 경우에는
String보다 StringBuffer나 StringBuilder를 사용이 좋다.
새로운 객체를 만들지 않고도 문자열을 수정할 수 있다.

'til > Algorithm' 카테고리의 다른 글

[string] 회문 문자열  (0) 2021.07.13
[string] 중복문자제거  (0) 2021.07.13
[string] 특정 문자 뒤집기(toCharArray())  (0) 2021.07.08
[string] 문장 속 단어(indexOf(), substring())  (0) 2021.07.06
[string] 대소문자 변환  (0) 2021.07.05
Comments