반응형
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;
}
};
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.