[python] 백준 1439번 뒤집기알고리즘/백준2022. 1. 31. 21:53
Table of Contents
문제 풀이
문자열 S를 입력받아서 모든 문자를 1로 만들 때 최소한의 뒤집기 횟수를 출력해야 한다.
예제 입력 4를 보면
11001100110011000001
인데 연속된 0만 보자면 00, 00, 00, 00000 총 4개가 있고
연속된 1만 보자면 11, 11, 11, 11, 1 총 5개가 있는 것을 볼 수 있다.
여기서 생각한 방법은 split함수를 쓰는 것이었다.
문자열 S를 입력받고 해당 문자열을 0이나 1을 구분자로 두면 쉽게 풀 수 있을 것 같았다.
s1 = s.split('0')
s2 = s.split('1')
위와 같이 각각 0과 1로 구분하였을 때 결과이다.
배열에 빈 문자열이 있지만 값이 있을 때만 카운트하면 된다.
s1은 연속된 0의 개수의 배열이 될 것이고 s2는 연속된 1의 개수의 배열이 될 것이다.
해당 s1과 s2를 비교해 더 작은 값을 출력하면 된다.
완성된 코드!!😊👍
def func(s):
count =0
for val in s:
if val:
count += 1
return count
s1 = input()
s2 = s1.split('0')
s3 = s1.split('1')
print(min(func(s2), func(s3)))
'알고리즘 > 백준' 카테고리의 다른 글
[python] 백준 1269번 대칭 차집합 (0) | 2022.02.04 |
---|---|
[python] 백준 1764번 듣보잡 (0) | 2022.02.01 |
[python] 백준 11656번 접미사 배열 (0) | 2022.01.28 |
[python] 백준 2870번 수학숙제 (0) | 2022.01.27 |
[python] 백준 5217번 쌍의 합 (0) | 2022.01.14 |
@펄찌 :: Pearl's Story
펄의 일상이 궁금한 사람 요기~
즐거운 하루 되셨으면 좋겠습니다😊