๐ก '<', '>', '-'์ ๋ฐ๋ผ์ ๋ฌธ์์ด์ ๋ฐฐ์ด์ ์์ ํด์ฃผ๋ฉด ๋๋ ๋ฌธ์ ์ ๋๋ค.
๊ฐ ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์ด๋ป๊ฒ ๋ฌธ์๋ฅผ ์์ ํ ์ง ๊ณ ๋ฏผํ๋ฉด ๋ฌธ์ ์ ๊ทผ์ ์ฝ๊ฒ ํ ์ ์์ต๋๋ค.
์์ธ์ ์ํฉ์ ์ ์ ๊ฒํด์ค์ผ ํฉ๋๋ค.
- ์ฃผ์ด์ง ๋ฌธ์์ด์ ํ ๋ฌธ์์ฉ ๋ฐ์์ต๋๋ค.
- ๋ฌธ์๊ฐ '<', '>', '-' ์ด ์๋๋ผ๋ฉด ๋ต ์คํ์ ๋ฌธ์๋ฅผ ๋ด์์ค๋๋ค.
- ๋ฌธ์๊ฐ '<'๋ผ๋ฉด ์๋น ์คํ์ ๋ต์คํ์ ๋ฌธ์๋ฅผ pop() ํด์ ๋ฃ์ด์ค๋๋ค.
๐ ์ปค์๊ฐ ์ผ์ชฝ์ผ๋ก ์ด๋ํ๋ค โก๏ธ ์ผ๋จ ํด๋น ๋ฌธ์๋ฅผ ์๋น ์คํ์ผ๋ก ๋บด๋๋๋ค.
- ๋ฌธ์๊ฐ '>'๋ผ๋ฉด ๋ต ์คํ์ ์๋น์คํ์ ๋ฌธ์๋ฅผ pop() ํด์ ๋ฃ์ด์ค๋๋ค.
๐ ์ปค์๊ฐ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํ๋ค. โก๏ธ ์๋น์คํ์ ์๋ ๋ฌธ์๋ฅผ ๊ฐ๊ณ ์จ๋ค.
- ๋ฌธ์๊ฐ '-'๋ผ๋ฉด ๋ต ์คํ์์ ๋ฌธ์๋ฅผ pop() ํด์ค๋๋ค.
- ์๋น ์คํ์ ๋จ์ ๋ฌธ์๋ฅผ ๋ชจ๋ ๋ต์คํ์ ๋ฃ์ด์ค๋๋ค.
- StringBuilder๋ฅผ ํ์ฉํด ๋ต ์คํ์ ๋ฌธ์๋ฅผ ๋ด์์ค๋ค reverse() ํจ์๋ฅผ ์ด์ฉํด ๋ต์ ์ถ๋ ฅํฉ๋๋ค.
public static void main(String[] args) throws IOException {
//BAPC<<A< degBCAP degBhCAP
//dd<<>deg>h ddegdh
//ddegdh-
//dddddd ee
Scanner sc = new Scanner(System.in);
Stack<Character> s = new Stack<Character>();
Stack<Character> sub = new Stack<Character>();
//BA<-PCd-C
//PCCA A
int n = sc.nextInt();
for(int i = 0; i < n ; i++) {
String input = sc.next();
for(int j = 0 ; j < input.length() ; j++) {
char c = input.charAt(j);
if(c!='<' && c!='>' && c!='-') {
s.push(c);
continue;
}
if(c=='<') {
if(!s.isEmpty()) {
sub.add(s.pop());
}
}
if(c=='>') {
if(!sub.isEmpty()) {
s.add(sub.pop());
}
}
if(c=='-') {
if(!s.isEmpty()) {
s.pop();
}
}
}
while(!sub.isEmpty()) {
s.push(sub.pop());
}
StringBuilder answer = new StringBuilder();
while(!s.isEmpty()) {
answer.append(s.pop());
}
System.out.println(answer.reverse());
}
}