피너클의 it공부방
백준 26042 식당 입구 대기 줄 (c++) : 피너 본문
728x90
반응형
https://www.acmicpc.net/problem/26042
queue를 이용한 구현문제다.
int n;
queue<int> q;
int a, b;
int m = 0, l = 987654321;
a, b는 입력받는 정보고
m은 최대 학생수이고
l은 최대 학생일때 번호 가장 작은 학생이다.
cin >> n;
while (n-- > 0) {
cin >> a;
값을 입력받고
if (a == 1) {
cin >> b;
q.push(b);
if (q.size() > m) {
m = q.size();
l = b;
}
else if (q.size() == m) {
if (l > b) l = b;
}
}
1을 입력받으면 다시 학생 번호 (b) 를 입력받는다.
q에 b를 넣고
만약 q의 크기가 m보다 크다면 m와 l을 업데이트 한다.
만약 q의 크기가 m과 같으면 l과 방금 입력받은 b를 비교하며 더 작은 수를 l에 넣는다.
else {
q.pop();
}
}
a에 다른 숫자가 들어가면 pop하면 된다.
그후 출력하면 된다.
#include <iostream>
#include <queue>
using namespace std;
int n;
queue<int> q;
int a, b;
int m = 0, l = 987654321;
int main()
{
cin >> n;
while (n-- > 0) {
cin >> a;
if (a == 1) {
cin >> b;
q.push(b);
if (q.size() > m) {
m = q.size();
l = b;
}
else if (q.size() == m) {
if (l > b) l = b;
}
}
else {
q.pop();
}
}
cout << m << ' ' << l << endl;
}
전체코드다.
728x90
반응형
'백준' 카테고리의 다른 글
백준 11005 진법 변환 2 (c++) : 피너클 (0) | 2024.11.22 |
---|---|
백준 2745 진법 변환 (c++) : 피너 (0) | 2024.11.20 |
백준 31926 밤양갱 (c++) : 피너클 (0) | 2024.11.17 |
백준 32651 인간은 무엇인가 (c++) : 피너클 (0) | 2024.11.15 |
백준 32642 당구 좀 치자 제발 (c++) : 피너클 (0) | 2024.11.14 |
Comments