728x90
https://www.acmicpc.net/problem/2810
2810번: 컵홀더
첫째 줄에 좌석의 수 N이 주어진다. (1 ≤ N ≤ 50) 둘째 줄에는 좌석의 정보가 주어진다.
www.acmicpc.net
극 중 한 줄에 자리가 N개
서로 인접한 좌석 사이에는 컵 홀가 하나씩 있고, 양 끝 좌석에 컵홀더가 하나씩 더 있다.
커플석이 있는데, 이 사이에는 컵홀더가 없다.
극장의 한 줄의 정보가 주어진다. 이 줄에 사람들이 모두 앉았을 때, 컵홀더에 컵을 꽂을 수 있는 최대 사람의 수 구하기
모든 사람은 컵을 한 개만 들고 있고, 자신의 좌석의 양 옆에 있는 컵홀더에만 컵을 꽂을 수 있다.
S는 일반 좌석, L은 커플석, L은 항상 두 개씩 쌍으로 주어진다.
컵홀더에 놓을 수 있는 최대 사람의 수를 출력하기
우선 좌석 문자열이 주어지면 L 좌석이 없다고 생각하고 컵홀더의 개수를 생각해보면 N+1
L의 개수를 카운팅해서 L의 개수당 0.5로 해서 카운팅 해준다. 커플석이니 LL 쌍으로 나온다.
만약 L의 카운팅한 값이 0이라면 커플석이 없다는 것이므로 자리 개수를 출력해줘야 한다.
컵홀더가 n+1개 있지만 사용할 수 있는 사람의 수는 자리 개수이기 때문.
그리고 만약 L의 카운팅 값이 0이 아니라면 커플석이 있다는 것이므로 이 값을 빼줘야 한다.
#include <iostream>
using namespace std;
int main(){
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int n, ans;
float cnt = 0;
string s; //좌석 배치
cin >> n >> s;
ans = n + 1;
for(int i=0; i<s.size(); i++){
if(s[i] == 'L'){
cnt += 0.5;
}
}
if(cnt == 0) cout << n << '\n';
else cout << ans - cnt << '\n';
return 0;
}
728x90
'알고리즘 > 백준' 카테고리의 다른 글
[백준/c++] 22864번: 피로도 (0) | 2022.07.09 |
---|---|
[백준/c++] 14720번: 우유 축제 (0) | 2022.07.08 |
[백준/c++] 2720번: 세탁소 사장 동혁 (0) | 2022.07.08 |
[백준/c++] 2864번: 5와 6의 차이 (0) | 2022.07.08 |
[백준/c++] 10162번: 전자레인지 (0) | 2022.07.08 |