[백준]2801-그리디(컵홀더)

shs131·2022년 4월 21일
0

알고리즘

목록 보기
2/6

문제풀이

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

  1. input 받기
n = int(input())
seats = input()
  1. 커플좌석이 있는 경우와 없는 경우로 나누기
couple = seats.count("LL")
if couple >= 1:
    print(len(seats.replace("LL", "S"))+1)
else:
    print(n)
  • 커플 좌석이 없다면 인원수 만큼 컵홀더를 이용할 수 있다.
  • 커플 좌석이 있다면 커플좌석 2개 사이에는 컵홀더가 있을 수 없다.
    replace("LL", "S")를 사용해서 [S S S S S]와 같이 만들어준다.
  • 커플 좌석이 없는 경우와는 다르게 커플좌석이 최소 1개라도 있다면
    [#S#S#S#S#S#S#]처럼 한 줄에 있는 모든 컵홀더를 이용해야한다.
  • 따라서 len(replace("LL", "S")+1)을 출력해준다

마무리

  • 간단해 보였지만 은근히 햇갈렸던 문제였다. 커플좌석이 있는지 없는지를 생각해주고 커플좌석이 1개일떄와 2개 이상일 때에는 어떻게 되는지를 생각해서 커플좌석이 1개 이상일 때에는 그 줄에 있는 컵홀더를 모두 이용해야 한다는 논리를 생각하는 것이 한번에 되지 않았다. 아직 부족한 점이 많다.

  • 저번주 주말에 갑자기 몸에 두드러기가 나서 잠을 못자 생활패턴이 꼬여서 고작 1개올리고 꾸준히 올리지 못했는데 건강관리 잘 해서 꾸준히 개발 블로그를 이어나가고 싶다

profile
개발자가 되고 싶은 1인

0개의 댓글