Algorithm/BOJ

BOJ 1439 뒤집기

삼쓰 웅쓰 2020. 6. 22. 15:42
728x90

출처: www.acmicpc.net/problem/status/1439/74/1

분류: Greedy


접근방식

0이 연속되는 구간, 1이 연속되는 구간을 계산해서 더 작은 구간을 다 뒤집으면 되니까 

더 적은 구간을 출력해주면 되는 문제입니다.

해결방법

let str = readLine()!

var zeroSection = 0
var oneSection = 0
var current: Character?
for char in str {
  guard let curr = current else {
    current = char
    continue
  }
  if char != curr {
    if char == "0" {
      zeroSection += 1
    } else {
      oneSection += 1
    }
    current = char
  }
}
print(max(zeroSection, oneSection))