[1439]反転
🔗 質問リンク
https://www.acmicpc.net/problem/1439
問題の説明
マルチシスは、0と1のみからなる文字列Sを有する.多順はこの文字列Sのすべての数字を同じにしたいと思っています.マルチシスはSの連続する1つ以上の数字をつかんで、それからすべてひっくり返すことができます.反転は1を0に、0を1にすることを意味します.
例えば、S=0001100の場合、
1. 전체를 뒤집으면 1110011이 된다.
2. 4번째 문자부터 5번째 문자까지 뒤집으면 1111111이 되어서
2번 만에 모두 같은 숫자로 만들 수 있다.
3. 하지만, 처음부터 4번째 문자부터 5번째 문자까지 문자를 뒤집으면
한 번에 0000000이 되어서 1번 만에 모두 같은 숫자로 만들 수 있다.
文字列Sが指定されている場合は、マルチシスが実行しなければならない最小操作回数を出力します.⚠▼制限
💡 プール(言語:Python)
簡単な問題ですが、どのように実施するかは考えていません.
前の数字と後の数字を比較し、数字が変わるたびにカウントし、(変化の回数+1)を2で割るルールがあります.
import sys
inp = sys.stdin.readline
ex = inp().strip()
count = 0
for i in range(1, len(ex)):
if ex[i-1] != ex[i]:
count += 1
print( (count + 1) // 2 )
Reference
この問題について([1439]反転), 我々は、より多くの情報をここで見つけました https://velog.io/@shiningcastle/1439-뒤집기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol