[https://www.acmicpc.net/problem/17413
1. 풀이
[백준 9093] 단어 뒤집기 - 자바 와 비슷한 문제이다.
루프를 돌면서 해당 문자가 태그<>안인지 아닌지만 확인하여 단어를 뒤집어 주면 된다.
태그 인지 아닌지 확인할 때는 정수를 사용해서 여는 문자 ('<')일때는 플러스 1을 해주고,
닫는 문자 ('>')일때는 마이너스 1을 해줌으로써, 태그 안인지 밖인지 구분이 가능하다.
2. 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Stack<Character> stack = new Stack<Character>();
int check = 0; // 태그안인지 아닌지 체크.
String input = sc.nextLine();
StringBuilder result = new StringBuilder();
for(char ch : input.toCharArray()) {
if(ch == '<') {
check+=1; // 태그 안을 의미.
// 태그 전까지의 문자 뒤집기.
while(!stack.isEmpty()) {
result.append(stack.pop());
}
result.append("<");
} else if(ch == '>') {
check-=1; // 태그 탈출.
result.append(">");
} else if(ch == ' ') {
// 공백 전까지의 문자 뒤집기.
while(!stack.isEmpty())
result.append(stack.pop());
result.append(" ");
} else {
if(check == 0) // 태그 밖
stack.push(ch);
else // 태그 안.
result.append(ch);
}
}
// 스택에 남은 문자 뒤집기.
while(!stack.isEmpty())
result.append(stack.pop());
System.out.println(result);
sc.close();
return;
}
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준 17298] 오큰수 - 자바 (0) | 2020.04.26 |
---|---|
[백준 10799] 쇠막대기 - 자바 (1) | 2020.04.26 |
[백준 10866] 덱 - 자바 (0) | 2020.04.25 |
[백준 1158] 요세푸스 문제 - 자바 (0) | 2020.04.25 |
[백준 10845] 큐 - 자바 (0) | 2020.04.25 |
댓글