Leetcode Java Minimum Changes To Make Alternating Binary String

업데이트:

문제

Link

코드

class Solution {

  public int minOperations(String s) {
    int result = 0;
    int length = s.length();
    for (int i = 0; i < length; i++) {
      if ((i % 2) != s.charAt(i) - '0') {
        result++;
      }
    }
    return Math.min(result, length - result);
  }

}

결과

Link

설명

  1. 0과 1로만 이루어진 s를 동일한 숫자가 연속되어 나타나지 않도록 재배열할 때, 바꿔야하는 최소한의 문자 갯수를 구하는 문제이다.

  2. 문제 풀이에 필요한 변수를 정의한다.
    • result는 바꿀 문자의 갯수를 저장할 변수로, 0으로 초기화하한ㄷ.
    • length는 s의 길이를 지정한 변수이다.
  3. 0부터 length까지 홀수 위치에 ‘1’이, 짝수 위치에 ‘0’이 존재하는지 검증하여 해당 갯수를 result에 넣어준다.

  4. 반복이 완료되면 result의 반대 경우인 홀수 위치에 ‘0’이, 짝수 위치에 ‘1’이 존재하는 경우에 대한 갯수인 $length - result$와 result 중 작은 값을 주어진 문제의 결과로 반환한다.

소스

Sample Code는 여기에서 확인 가능합니다.

댓글남기기