코린이의 소소한 공부노트

[LeetCode/Easy] 1957. Delete Characters to Make Fancy String 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 1957. Delete Characters to Make Fancy String

무지맘 2023. 6. 21. 11:16

1. Input

1) String s

 

2. Output

1) sfancy string으로 만든 결과를 반환

- fancy string이란 같은 문자가 연속으로 3개 이상 나오지 않는 문자열을 말한다.

- 이때 sfancy string으로 만들기 위해 삭제한 문자의 개수가 최소가 되어야 한다.

 

3. Constraint

1) 1 <= s.length <= 10^5

2) s는 영어 소문자로 이루어져 있다.

 

4. Example

Input: s = "leeetcode" -> Output: "leetcode"

Input: s = "aaabaaaa" -> Output: "aabaa"

Input: s = "aab" -> Output: "aab"

 

5. Code

1) 첫 코드(2023/06/21)

class Solution {
    public String makeFancyString(String s) {
        StringBuilder sb = new StringBuilder();
        int i = 0;
        while(i<s.length()){
            int j = i+1;
            while(j<s.length() && s.charAt(j)==s.charAt(i)) j++;
            for(int a=i ; a<Math.min(j,i+2) ; a++)
                sb.append(s.charAt(a));
            i = j;
        }
        return sb.toString();
    }
}

- 52%, 29%