99클럽 코테 스터디 40일자 TIL + optimal-partition-of-string

이월(0216tw)·2024년 6월 28일
0

99클럽/알고리즘풀이

목록 보기
38/38

문제 출처

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 을 해서 출력한다.

출력결과


새롭게 알게된 점

없음

다음에 풀어볼 문제 - 1차 코테 모임 종료.



#99클럽 #코딩테스트 준비 #개발자 취업 #항해99 #TIL

profile
Backend Developer (Financial)

0개의 댓글