99클럽 코테 스터디 18일차 TIL - 백준(식당 입구 대기 줄)

Gaeng·2024년 11월 14일
post-thumbnail

문제링크 : 식당 입구 대기줄

자료구조 : 큐 (LinkedList)

해결방법 : result의 배열을 선언해,
int [] result = {식당에 대기줄 최대값, 동시에 있을 때 가장작은 수 } 를 넣기 위해 Integer.MIN_VALUE, Integer.MAX_VALUE 를 활용해 결과값을 비교할 수 있게 만들었다.
문제를 풀고 생각하니 []이 아니라 각각의 변수를 선언해서 하면 되는데, 왜 배열을 생각놨는지 모르겠다.

그래서 첫번 째 입력값이 1일때와 2일 때를 구분해서 문제를 해결 했음.

import java.io.*;
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));
        int N = Integer.parseInt(br.readLine());
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        LinkedList<Integer> peopleNumber = new LinkedList<>();
        int [] result  = {Integer.MIN_VALUE, Integer.MAX_VALUE};
        for(int i = 0 ; i < N; i++){
            StringTokenizer st = new StringTokenizer(br.readLine());
            int first = Integer.parseInt(st.nextToken());
            if(first == 1) {
                int second = Integer.parseInt(st.nextToken());
                 peopleNumber.add(second);
                if(result[0]<=peopleNumber.size()){
                    if(result[0]==peopleNumber.size()){
                        if(result[1] > second){
                            result[1] = second;
                        }
                    }else{
                        result[0] = peopleNumber.size();
                        result[1] = second;
                    }
                }
            }
            if(first == 2){
                peopleNumber.remove();
            }
        }

        bw.write(result[0] +" "+result[1]);
        bw.flush();
        bw.close();
    }
}
profile
문제를 해결하면서 나온 문제를 기록하는 노트

0개의 댓글