반응형
https://leetcode.com/problems/minimum-changes-to-make-alternating-binary-string/
📕 풀이방법
📔 입력 및 초기화
1. 0101... 의 pattern1을 만들기 위해 바꿀 문자 수 pattern1Altered와 1010...의 pattern2를 만들기 위해 바꿀 문자 수 pattern2Altered를 선언 후 0으로 초기화해줍니다.2. length를 선언해 s의 size값을 저장해줍니다.
📔 풀이과정
pattern1, pattern2를 length길이만큼 만들어 저장해줍니다.
s의 원소를 순회하며 pattern1나 pattern2와 다른 문자가 있다면 그 값을 ~altered에 저장해줍니다.
📔 정답 출력 | 반환
pattern1과 pattern2를 만들기 위해 바꾼 문자 수 중 최솟값을 반환합니다.
📕 Code
📔 C++
class Solution {
public:
string getFilpedPattern(int length, int mode) {
int bit = mode;
string pattern ="";
while(length--) {
pattern += to_string(bit);
bit = !bit;
}
return pattern;
}
int minOperations(string s) {
int pattern1Altered = 0, pattern2Altered = 0;
int length = s.size();
string pattern1 = getFilpedPattern(length, 0);
string pattern2 = getFilpedPattern(length, 1);
cout << pattern1 << ' ' << pattern2 << '\n';
for(int i = 0; i < length; i++) {
if(pattern1[i] != s[i]) pattern1Altered++;
if(pattern2[i] != s[i]) pattern2Altered++;
}
return min(pattern1Altered, pattern2Altered);
}
};
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - LeetCode (easy) 1784. Check if Binary String Has at Most One Segment of Ones (0) | 2024.07.30 |
---|---|
(C++) - LeetCode (easy) 1773. Count Items Matching a Rule (0) | 2024.07.25 |
(C++) - LeetCode (easy) 1752. Check if Array Is Sorted and Rotated (0) | 2024.07.16 |
(C++) - LeetCode (easy) 1748. Sum of Unique Elements (0) | 2024.07.15 |
(C++) - LeetCode (easy) 1732. Find the Highest Altitude (1) | 2024.06.28 |