๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/25497)
< ๊ธฐ์ ์ฐ๊ณ๋ง์คํฐ ์์ค >
๋ฌธ์ ํ์ด
Stack์ 2๊ฐ ์ฌ์ฉํด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
ํ๋๋ R์ ์ฌ์ ๊ธฐ์ ์ธ L์ ์ ์ฅํ๊ณ , ๋ค๋ฅธ ํ๋๋ K์ ์ฌ์ ๊ธฐ์ ์ธ S๋ฅผ ์ ์ฅํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
public class _25497_ { // ๊ธฐ์ ์ฐ๊ณ๋ง์คํฐ ์์ค
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(bf.readLine());
String str = bf.readLine();
Stack<Character> sStack = new Stack<>();
Stack<Character> lStack = new Stack<>();
int result = 0;
for (int i = 0; i < n; i++) {
char x = str.charAt(i);
if (Character.isDigit(x)) {
result += 1;
} else if (x == 'L') {
lStack.add(x);
} else if (x == 'S') {
sStack.add(x);
} else if (x == 'R') {
if (!lStack.isEmpty()) {
lStack.pop();
result += 1;
} else {
break;
}
} else if (x == 'K') {
if (!sStack.isEmpty()) {
sStack.pop();
result += 1;
} else {
break;
}
}
}
System.out.println(result);
}
}
Main
๋ณ์)
n : ๊ธฐ์ ์ฌ์ฉ ํ์
str : ๊ธฐ์
sStack : Stack <Character>
LStack : Stack <Character>
result : ์ ์์ ์ผ๋ก ๊ธฐ์ ์ ์ฌ์ฉํ ์ด ํ์
- ์ด ๊ธฐ์ ์ฌ์ฉ ํ์(n) ์ ๋ ฅ
- ๊ธฐ์ (str) ์ ๋ ฅ
- ๊ธฐ์ ํ์
: ์ซ์(1~9)๋ผ๋ฉด ์ฐ๊ณ ์์ด ์ฌ์ฉํ ์ ์๋ ๊ธฐ์ ์ด๋ฏ๋ก result +1
: L์ด๋ S๋ผ๋ฉด ์ฌ์ ๊ธฐ์ ์ด๋ฏ๋ก ๊ฐ๊ฐ stack์ ์ ์ฅ
: R์ด๋ K๋ผ๋ฉด ๋ณธ ๊ธฐ์ ์ด๋ฏ๋ก ์ฌ์ ๊ธฐ์ ์ ์ฌ์ฉํ๋์ง ํ์ธ ํ ์ฌ์ฉํ์ ๊ฒฝ์ฐ result +1, ์ฌ์ฉํ์ง ์์๋ค๋ฉด ๊ทธ ์ดํ ๊ธฐ์ ์ ๋ค ์ ์์ ์ผ๋ก ๋ฐ๋๋์ง ์์ผ๋ฏ๋ก ์ข ๋ฃ
- ์ ์์ ์ผ๋ก ๊ธฐ์ ์ ์ฌ์ฉํ ์ด ํ์(result) ์ถ๋ ฅ
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 23843_์ฝ์ผํธ (0) | 2023.08.31 |
---|---|
[Baekjoon] 25381_ABBC (0) | 2023.08.30 |
[Baekjoon] 2257_ํํ์๋ (0) | 2023.08.28 |
[Baekjoon] 28278_์คํ 2 (0) | 2023.08.25 |
[Baekjoon] 17952_๊ณผ์ ๋ ๋๋์ง ์์! (0) | 2023.08.24 |