티스토리 뷰

PS

백준 2810. 컵홀더

tose33 2021. 8. 16. 13:42

https://www.acmicpc.net/problem/2810

 

2810번: 컵홀더

첫째 줄에 좌석의 수 N이 주어진다. (1 ≤ N ≤ 50) 둘째 줄에는 좌석의 정보가 주어진다.

www.acmicpc.net

 

컵홀더의 수와 사람의수 중 작은 수가 컵홀더를 쓸수있는 최대 사람 수이다.

좌석의수 N이 최대 50으로 아주 작아서 컵홀더와 좌석을 예제처럼 직접 만들어서 카운팅하긴 했는데

풀고 나니까 직접 만들지 않고 숫자만 세어줘도 될것같다.

 

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int n;
vector<char> v;
vector<char> cup;

int main()
{
    cin >> n;
    v.resize(n);
    for(int i = 0; i < n; i++)
        cin >> v[i];

    // 컵홀더 갯수 카운팅
    int LCnt = 0;
    cup.push_back('*');
    for(int i = 0; i < n; i++)
    {
        if(v[i] == 'S')
        {
            cup.push_back('S');
            cup.push_back('*');
        }
        else if(v[i] == 'L')
        {
            LCnt++;
        }

        if(LCnt == 2)
        {
            LCnt = 0;
            cup.push_back('L');
            cup.push_back('L');
            cup.push_back('*');
        }
    }

    // 컵홀더와 사람수 중에 적은 수가 답이다
    int cupCnt = 0, peopleCnt = 0;
    for(int i = 0; i < cup.size(); i++)
    {
        if(cup[i] == '*')
            cupCnt++;
        else
            peopleCnt++;
    }
    cout << min(cupCnt, peopleCnt);
}

'PS' 카테고리의 다른 글

백준 9009. 피보나치  (0) 2021.08.16
백준 2720. 세탁소 사장 동혁  (0) 2021.08.16
백준 2828. 사과 담기 게임  (0) 2021.08.15
백준 17609. 회문  (0) 2021.08.15
백준 2012. 등수 매기기  (0) 2021.08.14
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함