반응형
https://leetcode.com/problems/longer-contiguous-segments-of-ones-than-zeros/description/
간단 구현 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
최대 1 segment길이, 최대 0 segment길이, 현재 1 segment길이, 현재 0 segment 길이를 선언후 각각 0으로 초기화해줍니다.
📔 풀이과정
s의 원소를 수행하며 다음을 수행합니다.
1. 현재 원소가 '0'인 경우
현재까지의 1 segment의 최댓값을 갱신해주고 0으로 초기화해줍니다. 현재까지의 0 segment값을 1 추가합니다.
2. 현재 원소가 '1'인 경우
현재까지의 0 segment의 최댓값을 갱신해주고 0으로 초기화해줍니다. 현재까지의 1 segment값을 1 추가합니다.
3. 마지막 원소를 확인한 후 최종적으로 각 max segment값을 최댓값으로 갱신해줍니다.
📔 정답 출력 | 반환
maxOneSegmentLengh가 maxZeroSegmentLength보다 큰지 여부를 반환합니다.
📕 Code
📔 C++
class Solution {
public:
bool checkZeroOnes(string s) {
int maxOneSegmentLength = 0, maxZeroSegmentLength = 0;
int oneSeg = 0, zeroSeg = 0;
for(int i = 0; i < s.size(); i++) {
if (s[i] == '0') {
maxOneSegmentLength = max(maxOneSegmentLength, oneSeg);
oneSeg = 0;
zeroSeg++;
} else {
maxZeroSegmentLength = max(maxZeroSegmentLength, zeroSeg);
zeroSeg = 0;
oneSeg++;
}
}
maxOneSegmentLength = max(maxOneSegmentLength, oneSeg);
maxZeroSegmentLength = max(maxZeroSegmentLength, zeroSeg);
return maxOneSegmentLength > maxZeroSegmentLength;
}
};
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > String' 카테고리의 다른 글
(Python3) - 프로그래머스(코딩 기초 트레이닝) : 문자열의 앞의 n글자 (0) | 2024.10.04 |
---|---|
(Python3) - LeetCode (easy) 1961. Check If String Is a Prefix of Array (1) | 2024.10.02 |
(C++) - LeetCode (easy) 1768. Merge Strings Alternately (0) | 2024.07.24 |
(C++) - LeetCode (easy) 1736. Latest Time by Replacing Hidden Digits (0) | 2024.07.09 |
(C++) - LeetCode (easy) 1704. Determine if String Halves Are Alike (0) | 2024.06.17 |