[백준] 뒤집기 (1439)
문제 설명
입력 및 출력
» 입력
첫째 줄에 문자열 S가 주어진다. S의 길이는 100만보다 작다.
» 출력
첫째 줄에 다솜이가 해야하는 행동의 최소 횟수를 출력한다.
예제 입출력(테스트케이스)
| 입력 | 출력 | 
|---|---|
| 0001100 | 1 | 
문제 풀이 (KOTLIN)
import kotlin.math.min
fun main(args: Array<String>) = with(System.`in`.bufferedReader()) {
    println(separator(readLine()))
}
fun separator(S: String): Int {
    var one = 0
    var zero = 0
    var ch = ' '
    for (s in S) {
        if (ch != s) {
            ch = s
            when (s) {
                '1' -> one++
                else -> zero++
            }
        }
    }
    return min(one, zero)
}
문제 풀이 (SWIFT)
func separator(S: String) -> Int {
    var one = 0
    var zero = 0
    var char = "z"
    
    for s in Array(S).map({ String($0) }) {
        if char != s {
            char = s
            
            switch s {
            case "1": one += 1
            default: zero += 1
            }
        }
    }
    
    return one < zero ? one : zero
}
print(separator(S: readLine()!))