[그리디] 문자열 뒤집기

라다디·2021년 3월 30일
0

🍏 문제


백준 1439

📄 코드


s = input()
n = list(map(int, s))

count = [0, 0]

count[n[0]] += 1
for i in range(1, len(s)):
    if n[i - 1] != n[i]:
        count[n[i]] += 1

print(min(count))

✍ 풀이


💡 모두 같은 숫자로 만들기 위해 0을 뒤집는 것과 1을 뒤집는 것 중 어떤 것이 횟수가 더 적은가?

count는 0과 1을 뒤집는 것의 횟수를 담는 리스트이다. count의 0번 인덱스에는 0을 뒤집는 횟수, 인덱스 1에는 1을 뒤집는 횟수를 담는다. 문자열의 첫 번째 값을 인덱스로 받아 리스트의 해당 인덱스 값을 하나 증가시킨다. 반복문을 수행하며 값이 변하는 경우에 변한 값을 인덱스로 받아 리스트의 값을 증가한다. count의 최소 값은 곧 0과 1의 뒤집기 횟수 중 더 적은 것을 출력하는 것이다.

profile
Every day can be the beginning of a new life

0개의 댓글