[문제]
https://www.acmicpc.net/problem/1439
[풀이]
- 입력받은 문자열을 한 글자씩 리스트에 넣는다.
- 첫 번째 문자가 0이면 zero_count를 1 더해주고, 1이면 one_count를 1 더해준다.
zero_count: 0을 1로 바꿔야 하는 횟수 one_count: 1을 0으로 바꿔야 하는 횟수 - 반복문으로 문자열의 (i - 1) 인덱스와 (i) 인덱스의 값이 일치하는지 확인한다.
- 일치하지 않을 경우 (i) 인덱스의 값이 0이면 zero_count에 1을 더하고 1이라면 one_count에 1을 더한다.
- zero_count와 one_count 중 더 작은 수를 출력한다.
[코드]
import sys
S = list(sys.stdin.readline()[:-1])
zero_count, one_count = 0, 0
if S[0] == '0':
zero_count += 1
else:
one_count += 1
for i in range(1, len(S)):
if S[i-1] != S[i]:
if S[i] == '0':
zero_count += 1
else:
one_count += 1
print(min(zero_count, one_count))
'문제풀이 > BOJ' 카테고리의 다른 글
[Python] BOJ/백준 1946번 신입 사원 (0) | 2022.09.06 |
---|---|
[Python] BOJ/백준 1817번 짐 챙기는 숌 (1) | 2022.09.04 |
[Python] BOJ/백준 3578번 Holes (1) | 2022.09.03 |
[Python] BOJ/백준 10162번 전자레인지 (0) | 2022.09.03 |
[Python] BOJ/백준 2468번 안전 영역 (0) | 2022.08.26 |