https://leetcode.com/problems/optimal-partition-of-string(leetcode)
그리디
문자를 앞에서부터 비교하면서 특정 문자열을 포함하는지에 따라 count 추가 처리를 했다.
class Solution {
public int partitionString(String s) {
String stream = "";
String now = "";
int count = 0 ;
for(int i = 0 ; i<s.length(); i++) {
now = s.substring(i , i+1);
if(stream.toString().contains(now)) {
count++;
stream = now;
} else {
stream += now;
}
}
return count + 1 ;
}
}
데이터 예시 ] "abacaba"
for문을 반복 실행한다.
now = "a" 일때 stream = "" 이므로 stream += now 을 한다. stream = "a";
now = "b" 일때 stream = "a" 이므로 stream += now 을 한다. stream = "ab";
now = "a" 일때 stream = "ab" 이므로 "a"가 포함된다.
따라서 count++ 을 하고 해당 stream = "a" 로 재설정한다.
now = "c" 일때 stream = "a" 이므로 stream += now 을 한다. stream = "ac";
now = "a" 일때 stream = "ac" 이므로 "a"가 포함된다.
따라서 count++ 을 하고 해당 stream = "a"로 재설정한다.
now = "b" 일때 stream = "a" 이므로 stream += now 을 한다. stream = "ab"
now = "a" 일때 stream = "ab" 이므로 "a"가 포함된다.
따라서 count++ 을 하고 반복문이 종료된다.
마지막 경우를 위해 count + 1 을 해서 출력한다.
없음
#99클럽 #코딩테스트 준비 #개발자 취업 #항해99 #TIL