๋ฐฑ์ค 9093์ ํธ๋ ๊ณผ์ ์์ Java์์ Stack์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ตํ๊ณ ,
์์ BufferedReader์ BufferedWriter์ ์ฌ์ฉํด๋ณด์๋ค.
๋ํ, toCharArray()๋ผ๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ๋ณด์๋ค.
โ๏ธ String.toCharArray()
๋ฌธ์์ด์ charํ ๋ฐฐ์ด๋ก ๋ฐ๊ฟ์ค๋ค
๋ฌธ์ ์์๋ ์๋์ ๊ฐ์ด BufferedReader๋ก ๋ฐ์์ค ๋ฌธ์์ด์ charํ ๋ฐฐ์ด๋ก ๋ฐ๊ฟ์ฃผ์๋ค.
String str = br.readLine() + "\n";
char[] arr = str.toCharArray();
โ๏ธ Stack
์คํ์ ํ์ชฝ ๋์์๋ง ์๋ฃ๋ฅผ ๋ฃ๊ณ ๋บ ์ ์๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค(LIFO)
์ง์ ๊ตฌํํ ์ ์์ง๋ง ์๋ฐ Stack ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๋ ์๋ค.
import java.util.*; // import java util.Stack
Stack<Interger> stack = new Stack(); // intํ ์คํ
Stack<String> stack = new Stack();
// push
stack.push(1);
// pop
stack.pop();
stack.clear(); // stack์ ์ ์ฒด ๊ฐ ์ ๊ฑฐ(์ด๊ธฐํ)
// ๊ธฐํ
stack.size();
stack.isEmpty(); // ๋น์ด์์ผ๋ฉด true
stack.contatins(1); // stack์ 1์ด ์์ผ๋ฉด true, contains(int value)
stack.peek(); // top ๊ฐ ํ์ธํ๊ณ ์ ๊ฑฐํ์ง ์์
์คํ์ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ๋ค.
์ด ๋, ์ค์ํ ๊ฒ ์ !
๐จ stack.pop()์ ํ ๋ stack์ด ๋น์ด์์ผ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
๋ฐ๋ผ์ pop ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์, ํญ์ stack.isEmpty()๋ฅผ ์ฌ์ฉํด์ ํ์ธํ๋ ๊ณผ์ ์ ๊ฑฐ์ณ์ผํ๋ค.
๋ฌธ์ ์์๋ ์๋์ ๊ฐ์ด ํ์ธํ๋ ๊ณผ์ ์ ๊ฑฐ์ณค๋ค.
for (char ch : arr) {
if (ch == ' ' || ch == '\n') {
while(!stack.isEmpty()) { // popํ๊ธฐ ์ ์ ํ์ธ
bw.write(stack.pop();
}
// ์ดํ ์ฝ๋ ์๋ต ..
}
// ...
}