728x90
https://www.acmicpc.net/problem/1439
문제 접근
연속되는 수를 뒤집어 전체를 0으로 만들거나 1로 만드는 경우의 수 중 시행횟수의 최소값을 구하는 문제
0과 1중 연속되는 수가 끊기는 구간이 더 적은 쪽을 택하여 몇번 끊기는지 세주면 됨
정답코드
import java.util.*
fun main(args: Array<String>): Unit = with(Scanner(System.`in`)) {
val str = next()
var zero = 0
var one = 0
var check = ' '
for(n in str){
if (check != n){ // 연속되는 수가 끊기는 구간
check = n //마지막 수와 비교
if (n == '1') //1로 끊기는 경우
one++
else { //0으로 끊기는 경우
zero++
}
}
}
print(Math.min(zero, one))
}
'알고리즘 > 백준 문제풀이' 카테고리의 다른 글
백준 1418 k-세준수(Kotlin) (0) | 2023.01.30 |
---|---|
백준 1531 - 투명(Kotlin) (0) | 2023.01.29 |
백준 1343 - 폴리오미노(Kotlin) (0) | 2023.01.29 |
백준 1316 - 그룹 단어 체커(kotlin) (0) | 2023.01.29 |
백준 - 1120 (kotlin) (0) | 2023.01.28 |