https://www.acmicpc.net/problem/1439
문제 해석
0과 1로 이루어진 문자열이 주어진다. 해당 문자열에서 연속된 문자열을 뒤집어서 1 또는 0으로만 이루어진 문자열을 만드는 뒤집는 최소 횟수를 구하는 문제이다.
코드
input = __import__('sys').stdin.readline
s = input().strip()
ans = 0
flag = s[0]
for i in range(1, len(s)):
if flag == s[i]: continue
else:
flag = s[i]
ans += 1
print((ans + 1) // 2)
문제 풀이
문자열이 이전 문자열과 다르다면 += 1 을 해준다. (바뀐 횟수 + 1) // 2의 값이 정답이 되기 때문에이후 마지막에 1 을 더한 뒤 // 2을 하면 답이 된다.
'알고리즘 > BOJ' 카테고리의 다른 글
[백준/파이썬] 16953번 A → B (0) | 2022.08.01 |
---|---|
[BOJ/python] 1339번 단어 수학 (0) | 2022.07.31 |
[BOJ/python] 1946번 신입 사원 (0) | 2022.07.30 |
[BOJ/python] 1931번 회의실 배정 (0) | 2022.07.30 |
[BOJ/python] 1715번 카드 정렬하기 (0) | 2022.07.26 |