https://www.acmicpc.net/problem/2810
n = int(input())
s = input()
s = s.replace('LL', 'L')
new_s = '*'
for i in range(len(s)):
new_s += s[i]
new_s += '*'
s = new_s.replace('L', 'LL')
# 여기까지 별표를 끼워넣는 과정
arr = []
for i in s:
if i == '*':
arr.append(False)
else:
arr.append(i)
# arr라는 리스트에 컵홀더는 False로 나머지는 문자 그대로 넣음
cnt = 0
for i in range(len(arr)):
if arr[i] == False or arr[i] == True:
# 현재 인덱스가 컵홀더라면 패스
continue
else:
# S나 L의 좌우를 확인해 컵홀더가 있고, 컵홀더가 사용중이 아니라면(False)
if arr[i - 1] == False:
cnt += 1
arr[i-1] = True
elif arr[i+1] == False:
arr[i+1] = True
cnt += 1
print(cnt)
그리디 문제지만 약간 구현문제 같았다..
'알고리즘' 카테고리의 다른 글
파이썬)사과 담기 게임 - BOJ (0) | 2023.11.08 |
---|---|
파이썬) 폴리오미노 -BOJ (0) | 2023.11.07 |
파이썬) 게임을 만든 동준이 - BOJ (0) | 2023.11.06 |
파이썬) 0 만들기 - BOJ (0) | 2023.11.06 |
파이썬) 카드게임 - BOJ (0) | 2023.11.06 |