반응형
그리디 알고리즘을 사용하여 푸는 문제
주의할 점은 컵 홀더를 세는 것이 아닌 사람을 세야하는 문제.
좌석이 S만 나올 때는 자신의 왼쪽에 있는 컵홀더만 사용하다가
LL좌석이 나온 후 부터는 자신의 오른쪽에 있는 컵홀더만 사용할 수 있음과 동시에
이후 LL좌석이 나오는 때는 한 사람은 컵홀더를 사용할 수 없게 된다.
이에 맞춰 코딩을 하였다.
#include<iostream>
#include<string>
using namespace std;
int main() {
int N;
cin >> N;
string seat;
cin >> seat;
int count = 0;
int check = 0;
for(int i = 0; i < N; i++) {
if(seat[i] == 'S') {
count++;
} else {
if(check == 0) {
check++;
count += 2;
i++;
} else {
count++;
i++;
}
}
}
cout << count << endl;
return 0;
}
반응형
'BaekJoon > C++' 카테고리의 다른 글
1475 : 방 번호 (C++) (0) | 2021.01.20 |
---|---|
1259 : 팰린드롬수 (C++) (0) | 2021.01.20 |
4796 : 캠핑 (C++) (0) | 2021.01.19 |
10799 : 쇠막대기 (C++) (0) | 2021.01.18 |
2751 : 수 정렬하기 2 (C) (0) | 2021.01.11 |
댓글