๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/26042)
< ์๋น ์ ๊ตฌ ๋๊ธฐ ์ค >
๋ฌธ์ ํ์ด
Queue๋ฅผ ์ฌ์ฉํด์ ํ์์ด ๋๊ธฐํ ๋๋ง๋ค ๋๊ธฐํ๋ ํ์ ์์ ๋งจ ๋ค์ ์ค ์ ์๋ ํ์ ๋ฒํธ๋ฅผ ๋น๊ตํ์ฌ ๋ต์ ์ฐพ๋๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;
public class _26042_ { // ์๋น ์
๊ตฌ ๋๊ธฐ ์ค
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
int n = Integer.parseInt(bf.readLine());
Queue<Integer> queue = new LinkedList<>();
int cnt = 0;
int num = 100000;
for (int i = 0; i < n; i++) {
st = new StringTokenizer(bf.readLine());
int type = Integer.parseInt(st.nextToken());
if (type == 1) {
int temp = Integer.parseInt(st.nextToken());
queue.add(temp);
if (queue.size() >= cnt) {
if (queue.size() == cnt) {
if (num > temp)
num = temp;
} else {
cnt = queue.size();
num = temp;
}
}
} else {
queue.poll();
}
}
bw.write(cnt +" "+num);
bw.flush();
}
}
Main
๋ณ์)
n : ์ ๋ณด ์
queue : ๋๊ธฐ ํ์ ๋ฒํธ ์ ์ฅ
cnt : ๋๊ธฐํ๋ ํ์ ์ ์ต๋
num : ๋๊ธฐํ๋ ํ์ ์ ์ต๋์ผ ๋ ๋งจ ๋ค์ ์ค ์ ์๋ ํ์ ๋ฒํธ
type : 1 or 2
temp : ๋๊ธฐํ๋ ํ์ ๋ฒํธ ์ ๋ ฅ
- ์ ๋ณด ์ (n) ์ ๋ ฅ
- ์ ๋ณด ์๋งํผ ์ ๋ณด ์ ๋ ฅ
: ์ ํ์ด 1์ด๋ผ๋ฉด ๋๊ธฐ์ค์ ์ถ๊ฐ๋๋ฏ๋ก size๋ฅผ ํ์ธํด ๋๊ธฐํ๋ ํ์ ์ ์ต๋์ธ์ง ํ์ธ -> ์ต๋ ๊ฐ๊ณผ ๊ฐ๋ค๋ฉด ํ์ ๋ฒํธ๊ฐ ์์ ๊ฒ์ผ๋ก ์ ๋ฐ์ดํธ/ ์ต๋ ๊ฐ๋ณด๋ค ๋ ํฌ๋ค๋ฉด ํ์ ์์ ๋ฒํธ ์ ๋ฐ์ดํธ
: ์ ํ์ด 2๋ผ๋ฉด queue.poll()
- ์ต๋๊ฐ ๋์๋ ์๊ฐ์ ํ์ ์(cnt)์ ๊ทธ๋ ๋งจ ๋ค ํ์ ๋ฒํธ(num) ์ถ๋ ฅ
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 11000_๊ฐ์์ค ๋ฐฐ์ (0) | 2023.08.14 |
---|---|
[Baekjoon] 24511_queuestack (0) | 2023.08.11 |
[Baekjoon] 28107_ํ์ ์ด๋ฐฅ (0) | 2023.08.09 |
[Baekjoon] 1726_๋ก๋ด (0) | 2023.08.08 |
[Baekjoon] 5464_์ฃผ์ฐจ์ฅ (0) | 2023.08.08 |