๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/3986)
< ์ข์ ๋จ์ด >
๋ฌธ์ ํ์ด
Stack์ ์ฌ์ฉํด์ A๋ผ๋ฆฌ ๋๋ B๋ผ๋ฆฌ ์์ ์ง์ด ์ฐ๋ฌ์ ์๋์ง ํ์ธํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
public class _3986_ { // ์ข์ ๋จ์ด
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(bf.readLine());
int answer = 0;
Stack<Character> stack = new Stack<>();
for (int i = 0; i < n; i++) {
String str = bf.readLine();
int idx = 0;
while (idx < str.length()) {
if (!stack.isEmpty()) {
if (stack.peek() == str.charAt(idx)) {
stack.pop();
} else {
stack.add(str.charAt(idx));
}
} else {
stack.add(str.charAt(idx));
}
idx += 1;
}
if (stack.isEmpty()) {
answer += 1;
}
stack.clear();
}
System.out.println(answer);
}
}
Main
๋ณ์)
n : ๋จ์ด์ ์
answer : ์ข์ ๋จ์ด์ ์
stack : Stack <Character>
str : A์ B๋ก๋ง ์ด๋ฃจ์ด์ง ๋จ์ด
- ๋จ์ด์ ์ (n) ์ ๋ ฅ
- ๋จ์ด์ ์(n) ๋งํผ A์ B๋ก๋ง ์ด๋ฃจ์ด์ง ๋จ์ด(str) ์ ๋ ฅ
: ๋จ์ด(str)๋ฅผ ์ํํ๋ฉด์
1) stack์ด ๋น์ด์๋ค๋ฉด ์ถ๊ฐ
2) stack์ ๊ฐ์ด ์์ผ๋ฉด์ stack.peek() ๊ฐ์ด ํ์ฌ ๋ฃ์ผ๋ ค๋ ๊ฐ๊ณผ ๊ฐ๋ค๋ฉด ์์ ์ง์ ์ ์์ผ๋ฏ๋ก pop
3) stack์ ๊ฐ์ด ์์ผ๋ฉด์ stack.peek() ๊ฐ์ด ํ์ฌ ๋ฃ์ผ๋ ค๋ ๊ฐ๊ณผ ๊ฐ์ง ์๋ค๋ฉด stack์ ์ถ๊ฐ
: ์ํ ํ stack์ ๊ฐ์ด ๋น์ด์์ผ๋ฉด ์ข์ ๋จ์ด๋ ๋ป์ด๋ฏ๋ก answer +1
- ์ข์ ๋จ์ด์ ์(answer) ์ถ๋ ฅ
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 28278_์คํ 2 (0) | 2023.08.25 |
---|---|
[Baekjoon] 17952_๊ณผ์ ๋ ๋๋์ง ์์! (0) | 2023.08.24 |
[Baekjoon] 2812_ํฌ๊ฒ ๋ง๋ค๊ธฐ (0) | 2023.08.22 |
[Baekjoon] 2841_์ธ๊ณ์ธ์ ๊ธฐํ ์ฐ์ฃผ (0) | 2023.08.22 |
[Baekjoon] 23294_์น ๋ธ๋ผ์ฐ์ 1 (0) | 2023.08.21 |