Optimal Partition of String - LeetCode
<내 풀이>
class Solution:
def partitionString(self, s: str) -> int:
new = []
count = 1
for i in s:
if i not in new:
new.append(i)
else:
count+=1
new= [i]
return count
쉬운 그리디 문제지만 count를 정확히 하는 것이 조금 헷갈렸다.
일단 맨 처음에 count는 0이 아니라 1에서 시작한다.
계속해서 겹치는 문자가 안 나와서 그대로 끝나더라도 substring이 0이 아니라 1개는 되는 것이다.
그리고 new 배열에 문자를 차례대로 쌓아가다가,
겹치는 문자가 나올 때마다 일단 새로운 substring을 만들어야 하니까
count에 1을 더한다.
새로운 substring은 처음에는 new를 빈 배열로 초기화하는 걸로 만들었는데,
그게 아니라 new에 방금 전에 겹친 문자열 딱 하나 들어가도록 초기화하고 다음 문자로 넘어가야 한다.
끗