물음표 살인마

[백준9093] 단어뒤집기 세가지 방법으로 풀어보기 본문

개발지식/Algorithm

[백준9093] 단어뒤집기 세가지 방법으로 풀어보기

응지권 2022. 8. 16. 23:47

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

 

9093번: 단어 뒤집기

첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는

www.acmicpc.net

 

단어뒤집기를 푸는 3가지 방법

1. StringBuilder

2. for문

3. stack

 

1. StringBuilder

sb.append(new StringBuilder(str).reverse()).append(" ");

 

2. for문

for(int j = str.length() ; j > 0 ; j--){
	sb.append(str.charAt(j-1));
}
	sb.append(" ");

 

3.  stack

Stack<Character> stack = new Stack<>();            
String str = br.readLine() +"\n";           

for (char ch : str.toCharArray()) {
    if (ch == ' ') {
        while (!stack.isEmpty()) {
        	sb.append(stack.pop());
    	}
    	sb.write(ch);
    }
    else{
    	stack.push(ch); 
    }           
}

공백을 만나기 전까지 stack에 데이터를 담고,

공백을 만나면 스택에서 데이터를 꺼내 버퍼에 담는다.

 

 

Comments