새소식

⌨️ Algorithms/백준

[Python] 백준 2810번_컵홀더

2023. 2. 9. 20:49

  • -

https://www.acmicpc.net/problem/2810

 

2810번: 컵홀더

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

www.acmicpc.net

 

  • 극장의 한 줄에는 자리가 N개가 있음
  • 서로 인접한 좌석 사이에는 컵홀더가 하나씩 있고, 양 끝 좌석에는 컵홀더가 하나씩 더 있음
  • 커플석 사이에는 컵홀더가 없음
  • 극장의 한 줄의 정보가 주어졌을 때, 이 줄에 사람들이 모두 앉았을 때, 컵홀더에 컵을 꽂을 수 있는 최대 사람의 수 구하기
  • 모든 사람은 컵을 한 개만 들고 있고, 자신의 좌석의 양 옆에 있는 컵홀더에만 컵을 꽂을 수 있음
  • S는 일반 좌석, L은 커플석을 의미하며, L은 항상 두개씩 쌍으로 주어짐
  • 어떤 좌석의 배치가 SLLLLSSLL일때, 컵홀더를 *로 표시하면 아래와 같음
    • *S*LL*LL*S*S*LL*
    • -> 적어도 두 명은 컵홀더를 사용할 수 없음
  • 입력
    • 첫째 줄에 좌석의 수 N이 주어짐 (1 ≤ N ≤ 50)
    • 둘째 줄에는 좌석의 정보가 주어짐
  • 출력
    • 컵을 컵홀더에 놓을 수 있는 최대 사람의 수를 출력
  • 시간 제한: 1초
  • 메모리 제한: 128 MB

 

"""
입출력 예시)

(예제 입력 1) 
3
SSS 
    -> 3

(예제 입력 2)
4
SLLS 
    -> 4

(예제 입력 3)
9
SLLLLSSLL
    -> 7
"""

 

 

## 의사코드 ##

# s.replace('LL', 'L') # 커플석에 앉은 2명 중 한명만 컵홀더 사용 가능   
# 컵홀더를 사용할 수 있는 최대 사람의 수 = len(s) + 1 # (1: 맨 끝 좌석의 컵홀더)

 

 

 

통과한 코드

 

n = int(input()) 
seat = input().replace('LL', 'L') # 커플석에 앉은 2명 중 한 명만 컵홀더 사용 가능 
holder = len(seat)+1 # 컵홀더의 개수 (맨 끝 좌석의 컵홀더 한개를 더함)

# 컵홀더의 개수가 n보다 큰 경우, n 출력
if n < holder:
    print(n)
else:
    print(holder)

 

  • ex) 컵홀더의 개수가 n보다 큰 경우
    • 예제 입력 1) n = 3, "SSS"
      • -> 이때, 컵홀더의 개수는 4개이지만 n(사람의 수)는 3명이기 때문에 n이 정답

 

 

 

참고)

 

https://gaza-anywhere-coding.tistory.com/23

 

[파이썬][백준] 2810번 컵홀더

www.acmicpc.net/problem/2810 2810번: 컵홀더 첫째 줄에 좌석의 수 N이 주어진다. (1 ≤ N ≤ 50) 둘째 줄에는 좌석의 정보가 주어진다. www.acmicpc.net 문제 설명 SLLS와 같이 문제가 주어진다. - S는 *S*로 표현된

gaza-anywhere-coding.tistory.com

 

https://codingpractices.tistory.com/entry/%EA%B7%B8%EB%A6%AC%EB%94%94-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%9816-%EB%B0%B1%EC%A4%80-2810-%EC%BB%B5%ED%99%80%EB%8D%94-%ED%8C%8C%EC%9D%B4%EC%8D%AC

 

[그리디 알고리즘16] 백준 2810 컵홀더 파이썬

백준 2810 컵홀더 📜 문제 십년이면 강산이 변한다. 강산이네 동네에 드디어 극장이 생겼고, 강산이는 극장에 놀러갔다. 매점에서 콜라를 산 뒤, 자리에 앉은 강산이는 큰 혼란에 빠졌다. 양쪽 컵

codingpractices.tistory.com

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다!