오늘의 문제!
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class 컵홀더_2810 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
String seat = br.readLine();
int total = seat.length();
int L_cnt = 0;
for (int i = 0; i < n; i++) {
if (seat.charAt(i) == 'L') {
L_cnt++;
}
}
L_cnt /= 2;
if (L_cnt == 0) {
bw.write(total + "");
} else {
bw.write((total - (L_cnt - 1)) + "");
}
bw.flush();
bw.close();
}
}
처음에 엥? 싶었는데 생각보다 패턴이 금방 보였다.
S끼리만 존재하면 모든 좌석이 컵홀더를 이용할 수 있으니
seat.length()를 그대로 출력.
LL이 하나만 존재하면 좌, 중, 우 어디에 있어도 영향이 없다.
LL이 2개 이상이 되는 순간부터 LL과 LL 사이에 무조건 한자리씩은 컵홀더 이용 불가. (seat.length() - (L_cnt - 1))
굳이 "LL"을 찾을 필요는 없고, 무조건 2의 배수로 나온댔으니 그냥 'L'갯수만 세서 반으로 나눠서 계산하면 되는 문제.