2026.03.26 목

권순찬·2026년 3월 26일

천천히 꾸준히

목록 보기
23/50

오늘의 문제!

컵홀더_2810

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'갯수만 세서 반으로 나눠서 계산하면 되는 문제.

profile
아직 많이 서툰 개발자

0개의 댓글