[백준] 2810 컵홀더

Dev.Jo·2022년 1월 14일
0

알고리즘

목록 보기
5/21
post-thumbnail

코드

if __name__ == "__main__":
    N=int(input())
    S=input()
    cup_holders = N + 1 - S.count("LL")
    print(min(N,cup_holders))

풀이

  • 브론즈 문제 치고 꽤 생각을 많이했던 문제
  • 그리디로 분류되었던데, 그냥 풀었다.

핵심풀이는 다음과 같다.

  1. 만약 커플석없이 S로만 이루어져 있다면 N명의 사람과 N+1개의 컵홀더 있을 것이다.

  2. 커플석이 존재한다면, 컵홀더의 갯수는 N+1 - 커플석의 갯수 가 된다.

    • 왜냐하면 원래는 *L*L*이어야되는데 LL사이의 *만큼 손해보는 거니깐
  3. 우리는 min(사람의 수, 컵홀더의 수) 를 구하면 된다

    • 왜냐하면 컵홀더의 수 > 사람의 수 인 경우는 모든 사람이 컵홀더를 사용 할 수 있고
    • 사람의 수 > 컵홀더의 수 인 경우는 특정사람만이 컵홀더를 사용할 수 있는데, 사람의 수는 컵홀더의 갯수와 같기 때문에
profile
소프트웨어 엔지니어, 프론트엔드 개발자

0개의 댓글