반응형
문제
https://www.acmicpc.net/problem/26042
JAVA 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Deque;
import java.util.LinkedList;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
StringTokenizer st;
Deque<Integer> deque = new LinkedList<>();
int maxLine = 0;
int lastStudentNum = Integer.MAX_VALUE;
int peek = 0;
int size = 0;
for (int idx = 0; idx < N; idx++) {
st = new StringTokenizer(br.readLine());
if (1 == Integer.parseInt(st.nextToken())) {
deque.add(Integer.parseInt(st.nextToken()));
size = deque.size();
peek = deque.peekLast();
// 대기하는 학생 수가 최대가 되었던 순간의 학생 수와 이때 식당 입구의 맨 뒤에 대기 중인 학생의 번호
if (maxLine < size) {
lastStudentNum = peek;
maxLine = size;
// 대기하는 학생 수가 최대인 경우가 여러 번이라면 맨 뒤에 줄 서 있는 학생의 번호가 가장 작은 경우를 출력
} else if (maxLine == size && lastStudentNum > peek) {
lastStudentNum = peek;
}
} else {
deque.pollFirst();
}
}
bw.write(maxLine + " " + lastStudentNum);
br.close();
bw.flush();
bw.close();
}
}
반응형
'Algorithm > 문제 풀이' 카테고리의 다른 글
[BAEKJOON_17615 - JAVA] 볼 모으기 (0) | 2022.12.07 |
---|---|
[BAEKJOON_12865 - JAVA] 평범한 배낭 (0) | 2022.11.24 |
[BAEKJOON_26005 - JAVA] 나뭇잎 학회 (0) | 2022.11.23 |
[BAEKJOON_26043 - JAVA] 식당 메뉴 (0) | 2022.11.23 |
[BAEKJOON_3055 - JAVA] 탈출 (0) | 2021.01.01 |