백준(2810) - 컵홀더 Python
백준(2810) - 컵홀더
문제유형 : 그리디 알고리즘, 파이썬
해결방법
그리디 문제는 경우의 수를 잘 확인하는 것이 중요하다.
이 문제도 경우의 수로 나눠서 확인해야 한다.
-
n 이 1이면 당연히 1이 출력된다.
-
좌석이 커플석이 없는 경우로만 이루어진다면 n을 출력하면된다.
-
좌석이
SLLLLSSLL
로 이루어져 있다면 컵 홀더는*S*LL*LL*S*S*LL*
가 위치해있다.컵 홀더의 위치에 맞게 *을 표기해두고 최종적으로 *의 개수를 출력하면 된다.
n = int(input())
seats = input()
if n == 1:
print(1)
elif n == seats.count('S'):
print(n)
else:
res = ['*']
count = 1
for i in range(len(seats)):
if seats[i] == 'S':
res.append(seats[i])
res.append('*')
elif seats[i] == 'L' and count != 2:
count += 1
res.append(seats[i])
elif seats[i] == 'L' and count == 2:
count = 1
res.append(seats[i])
res.append('*')
print(res.count('*'))
댓글남기기