TIL

[코테연습] 1653. Minimum Deletions to Make String Balanced

크라00 2024. 7. 30. 16:46

- 반복문 / 문자열문제

 

https://leetcode.com/problems/minimum-deletions-to-make-string-balanced/description/?envType=daily-question&envId=2024-07-30

 

- 문제분석

1. a 와 b 가 번갈아 있는 문자열이있다.

2. 해당 문자열을 a 가 b 뒤에 존재해야하는 '균형상태' ( aba (x), aab (o)) 일때, 최소한의 문자열 삭제로 해당 균형상태를 만드는 방법을 찾아라.

 

- 문제풀이

1. 문자열을 반복문으로 반복하면서 b 일 경우에 갯수를 센다.

2. a 일 경우 b를 갯수를 낮춘다. ( 0 이상으로만 )

3. b가 0 이 아닐 경우에 'a' 가 출력된 경우에 해당 'a' 를 삭제해야하므로 총 삭제 카운트를 늘린다.

 

class Solution {
    public int minimumDeletions(String s) {
        int result = 0;
        int b = 0;

        for (char c : s.toCharArray()) {
            if (c == 'b') {
                b++;
            // a 이고, b 의 갯수가 0보다 클 경우.b의 갯수가 0 일때는 ( a 가 많은 경우 ) result 를 카운팅하지 않는다.
            } else if (b != 0) {
                result++;
                b--;
            }
        }

        return result;
    }
}