본문 바로가기

Algorithm/Implementation

(C++) - LeetCode (easy) 1422. Maximum Score After Splitting a String

반응형

https://leetcode.com/problems/maximum-score-after-splitting-a-string/description/

간단 전수조사 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

정답 변수 ms를 선언해 0으로 초기화해줍니다.

📔 풀이과정

1. s의 문자에 대해 loop를 수행하며 현재를 기준으로 왼쪽과 오른쪽 문자를 분리해 지역변수 a,b에 각각 저장합니다.

2. 문자열로부터 원하는 bit개수를 세 개수를 반환하는 countBit함수 문자 a,b에 대해서 수행합니다.

3. ms에 a의 0bit개수와 b의 1bit개수를 더한값과 비교해 최댓값을 저장합니다.

📔 정답 출력 | 반환

ms를 반환합니다.


📕 Code

📔 C++

class Solution {
public:
    int countBit(string bin, char piv) {
        int bits = 0;
        for(auto b : bin) {
            if(b == piv) {
                bits++;
            }
        }
        return bits;
    }

    int maxScore(string s) {
        int ms = 0;
        for(int piv = 1; piv < s.size(); piv++) {
            string a = s.substr(0, piv);
            string b = s.substr(piv);
            ms = max(ms, countBit(a, '0') + countBit(b, '1'));
        }
        return ms;
    }
};

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.