Post List

[BOJ] 백준 2810 컵홀더

[BOJ] 백준 2810 컵홀더


이 문제는 자료구조중 큐를 이용하면 쉽게 풀 수 있는 문제 입니다.
좌석들을 전부 큐에 넣고, S or L 에 따라 pop의 횟수를 조절해주면 되는 문제 입니다.

소스 코드 : 

#include 
#include 
using namespace std;

int main() {
 int n;
 cin >> n; cin.ignore();
 queue q;
 char s;

 // 큐에 문자들을 넣음
 for (int i = 0; i < n; i++) {
  cin >> s; 
  q.push(s);
 }
 int v = 0;
 // 큐에 원소가 있을 경우
 while(!q.empty()) {
  // 싱글석 일경우 1회 pop 후 컵 장소 개수 올림.
  if (q.front() == 'S') {
   q.pop();
   v++;
  }
  // 커플석 일경우 2회 pop 후 컵홀더 개수 올림.
  else {
   q.pop(); q.pop();
   v++;
  }
 }
 // 좌석 수가 컵홀더 개수보다 클 경우 컵홀더 개수 출력, 그외 좌석수 출력
 cout << (n>v+1?v + 1:n )<< endl;
}

댓글