๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/2841)
< ์ธ๊ณ์ธ์ ๊ธฐํ ์ฐ์ฃผ >
๋ฌธ์ ํ์ด
๊ธฐํ ์ค๋ง๋ค stack์ ๋ง๋ค์ด์ ๋๋ฌ์ผ ํ๋ ํ๋ ๋ณด๋ค ์ ์ ๋๋ฅธ ํ๋ ๋ฒํธ๊ฐ ํฐ์ง ์์์ง์ ๋ฐ๋ผ ํ๋จํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Stack;
import java.util.StringTokenizer;
public class _2841_ { // ์ธ๊ณ์ธ์ ๊ธฐํ ์ฐ์ฃผ
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(bf.readLine());
int n = Integer.parseInt(st.nextToken());
int p = Integer.parseInt(st.nextToken());
ArrayList<Stack<Integer>> arr = new ArrayList<>();
for (int i = 0; i < 7; i++) {
arr.add(new Stack<>());
}
int result = 0;
for (int i = 0; i < n; i++) {
st = new StringTokenizer(bf.readLine());
int num = Integer.parseInt(st.nextToken());
int p_num = Integer.parseInt(st.nextToken());
Stack<Integer> stack = arr.get(num);
while (!stack.isEmpty() && stack.peek() > p_num) {
stack.pop();
result += 1;
}
if(!stack.isEmpty() && stack.peek()==p_num) {
continue;
}else {
stack.add(p_num);
result += 1;
}
}
System.out.println(result);
}
}
Main
๋ณ์)
n : ๋ฉ๋ก๋์ ํฌํจ๋์ด ์๋ ์์ ์
p : ํ๋ ์ ์
arr : ArrayList <Stack <Integer>> ๊ธฐํ ์ค๋ง๋ค stack์ ๊ฐ์ง ArrayList
result : ๋ฉ๋ก๋๋ฅผ ์ฐ์ฃผํ๋๋ฐ ํ์ํ ์ต์ ์๊ฐ๋ฝ ์์ง์
- ๋ฉ๋ก๋์ ํฌํจ๋์ด ์๋ ์์ ์(n), ํ๋ ์ ์(p) ์ ๋ ฅ
- ๋ฉ๋ก๋์ ํฌํจ๋์ด ์๋ ์์ ์(n) ๋งํผ ๋ฐ๋ณต
: ์ค์ ๋ฒํธ(num), ํ๋ ์ ๋ฒํธ(p_num)๋ฅผ ์ ๋ ฅ๋ฐ์
: ๊ทธ ์ค(num)์ ํด๋นํ๋ stack์ ๊ฐ์ ธ์ด
: stack์ peek ๊ฐ์ด ๋ค์ ํ๋ ์ ๋ฒํธ(p_num) ๊ฐ ๋ณด๋ค ํฌ๋ค๋ฉด ์๊ฐ๋ฝ์ ๋ ๋ค์์ ๋๋ฅผ ์ ์์ผ๋ฏ๋ก stack.pop๊ณผ ์๊ฐ๋ฝ ์์ง์(result) ์ถ๊ฐ
: ๋ง์ฝ ๋ค์ ํ๋ ์ ๋ฒํธ์ ํ์ฌ ๋๋ฅด๊ณ ์๋ ํ๋ ์ ๋ฒํธ๊ฐ ๊ฐ๋ค๋ฉด ์์ง์ x
: ๋ค์ ํ๋ ์ ๋ฒํธ์ ํ์ฌ ๋๋ฅด๊ณ ์๋ ํ๋ ์ ๋ฒํธ๊ฐ ๊ฐ์ง ์๋ค๋ฉด stack์ ์ถ๊ฐ ๋ฐ ์๊ฐ๋ฝ ์์ง์(result) ์ถ๊ฐ
- ์ต์ ์๊ฐ๋ฝ ์์ง์(result) ์ถ๋ ฅ
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 3986_์ข์ ๋จ์ด (0) | 2023.08.23 |
---|---|
[Baekjoon] 2812_ํฌ๊ฒ ๋ง๋ค๊ธฐ (0) | 2023.08.22 |
[Baekjoon] 23294_์น ๋ธ๋ผ์ฐ์ 1 (0) | 2023.08.21 |
[Baekjoon] 28279_๋ฑ 2 (0) | 2023.08.21 |
[Baekjoon] 2617_๊ตฌ์ฌ ์ฐพ๊ธฐ (0) | 2023.08.18 |