백준 2810 | 그리디 | 컵홀더 [파이썬 python]

2023. 4. 28. 14:49·Algorithm/백준
 

2810번: 컵홀더

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

www.acmicpc.net

 

코드

n = int(input()) # 좌석 수
seat = input() # 좌석 정보

couple = seat.count('LL') # 커플석의 개수

if couple <= 1:
    print(n)
else:
    print(n + 1 - couple)

영화관의 한 줄에는 자리가 N개 있고, 컵홀더는 양쪽에 하나씩 더 있다고 했으므로 한 줄에 있는 컵홀더의 개수는 N+1개이다.

우리가 가는 영화관을 생각해 보면 N+1을 쉽게 떠올릴 수 있다.

좌석 기준 오른쪽에 컵홀더가 있다고 하면 N개의 자리에는 N개의 컵홀더가 있고, 제일 왼쪽 자리에는 왼쪽에도 컵홀더가 있을 것이므로 N+1개가 된다.

 

이때, 커플석에는 좌석 사이에 컵홀더가 없다.

그럼 2개의 자리인 커플석 LL에는 '*LL*'처럼 컵홀더(*)가 있는 것이므로 L과 L사이에는 컵홀더가 없는 것을 알 수 있다.

커플석이 연속으로 있으면 어떻게 될까?

*LL*LL*LL*에서도 역시 LL사이에는 컵홀더가 없으므로 커플석(LL)의 개수만큼 컵홀더가 없다는 것을 알 수 있다.

그러므로, 총 컵홀더의 개수는 N + 1 - couple이 되고, N+1-couple명의 사람이 컵홀더를 사용할 수 있다.

 

하지만 이 식은 모든 경우에 해당되지 않는다.

만약 일반좌석만 있으면 이 식으로 컵홀더를 사용할 수 있는 최대 인원을 구할 수 있을까?

일반좌석 3개로만 이루어져 있다면 컵홀더는 *S*S*S*와 같이 있을 것이고 좌석은 3개이지만 컵홀더는 4개이다.

컵홀더의 개수는 같은 식으로 구할 수 있지만 최대 사용 인원은 구할 수 없다.

 

그래서 문제에서 예제 입력으로 커플석이 0개일 때와 1개일 때의 결과를 알려준 것 같다.

커플석이 0개일 경우에는 N개의 좌석이 존재할 때 컵홀더는 N+1개이지만, N명의 사람이 사용한다.

커플석이 1개일 경우에는 N개의 좌석의 존재할 때 컵홀더는 N+1-1개이고 N명의 사람이 사용할 수 있다.

즉, 커플석이 1개 이하일 경우에는 최대 N명의 사람이 컵홀더를 사용할 수 있다.

 

그러므로 조건에 따라 다른 출력을 할 수 있도록 해야 한다.

if couple <= 1:
    print(n)
else:
    print(n + 1 - couple)

커플석이 1개 이하이면 N을 그대로 출력하고, 커플석이 2개 이상이면 컵홀더의 개수(N+1-couple)를 출력한다.

 

코드를 작성하는 것은 어려운 문제는 아니지만, 생각해 내는 과정이 조금 어려웠다.

저작자표시 (새창열림)
'Algorithm/백준' 카테고리의 다른 글
  • 백준 1541 | 그리디 | 잃어버린 괄호 [파이썬 python]
  • 백준 11724 | DFS / BFS | 연결 요소의 개수 [파이썬 python]
  • 백준 4796 | 그리디 | 캠핑 [파이썬 python]
  • 백준 2805 | 이진탐색 | 나무 자르기 [파이썬 python]
dduniverse
dduniverse
  • dduniverse
    dduniverse
    dduniverse
  • 전체
    오늘
    어제
    • 분류 전체보기 (245)
      • Algorithm (123)
        • 알고리즘 이론 (8)
        • 백준 (19)
        • 프로그래머스 (83)
        • 구름 알고리즘 먼데이 챌린지 (13)
      • 빅데이터분석기사 (10)
        • 통계 (4)
        • 실기 (6)
      • KT에이블스쿨 (26)
      • FrontEnd (11)
        • React (5)
        • 기타 (6)
      • BackEnd (18)
        • Django (15)
        • Spring (3)
      • DS & ML (11)
        • Machine Learning (9)
        • Kaggle (2)
      • TIL (46)
        • python (22)
        • javascript (3)
        • 오류해결 (10)
        • 기타 (10)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 관리
    • 글쓰기
  • 링크

  • 인기 글

  • hELLO· Designed By정상우.v4.10.0
dduniverse
백준 2810 | 그리디 | 컵홀더 [파이썬 python]
상단으로

티스토리툴바