[백준] 뒤집기 (1439)

문제 설명

백준 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()!))

태그:

카테고리:

업데이트: