[LeetCode] 1758. Minimum Changes To Make Alternating Binary String

Chobby·6일 전
1

LeetCode

목록 보기
597/650

😎풀이

  1. 0으로 시작하여, 0101...과 같이 구성될 경우의 수 선언
  2. 1로 시작하여, 1010...과 같이 구성될 경우의 수 선언
  3. 0으로 시작하는 문자열과 같이 변환할 때, 필요한 변환의 수 선언
  4. 1로 시작하는 문자열과 같이 변환할 때, 필요한 변환의 수 선언
  5. s 순회
    5-1. 0으로 시작하는 문자열과 같이 변환할 때, 변환이 필요한 경우인지 판별
    5-2. 1로 시작하는 문자열과 같이 변환할 때, 변환이 필요한 경우인지 판별
  6. 최소 변환 수 반환환
function minOperations(s: string): number {
    const n = s.length
    const startWith0 = '01'.repeat(n)
    const startWith1 = '10'.repeat(n)
    let zeroCount = 0
    let oneCount = 0
    for(let i = 0; i < n; i++) {
        const cur = s[i]
        if(cur !== startWith0[i]) zeroCount++
        if(cur !== startWith1[i]) oneCount++
    }
    return Math.min(zeroCount, oneCount)
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글