똥그래미 코딩공장
백준 1439번(뒤집기) 파이썬 본문
https://www.acmicpc.net/problem/1439
1439번: 뒤집기
다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모
www.acmicpc.net
문자열과 그리디가 합쳐진 유형이다 언뜻보면 쉬울수도 어려울수도 있는 문제이다.
이 문제의 키포인트는 숫자가 바뀌었을때를 찾고 연속해서 나오는 숫자들을 세줘야 한다는 것이다.
아래의 코드를 보며 설명해보겠다.
s = input()
one_count = 0
zero_count = 0
for i in range(len(s)-1):
if s[i] == s[i+1]:
continue
else:
if s[i] == "1":
one_count+=1
else:
zero_count+=1
if one_count > zero_count:
print(one_count)
elif one_count < zero_count:
print(zero_count)
else:
print(one_count)
첫번째 for문 안에 있는 if 문은 숫자가 같을 경우이다. 이럴경우 그냥 넘어가주면 된다.
두번째 else 문은 숫자가 다를경우이고 숫자가 달라질때 그 숫자가 1이면 one_count를 1 올려주고 0이면 zero_count를 올려준다.
이러한 작업이 모두 끝나면 더 많은 숫자가 있는 변수를 출력해주면 된다.
왜냐하면 그 숫자가 곧 바꿔야할 숫자의 횟수이기 때문이다.
'Algorithm' 카테고리의 다른 글
| 백준 1260번(DFS와BFS) 파이썬 (0) | 2023.01.06 |
|---|---|
| 백준 1764번(듣보잡) 파이썬 (0) | 2022.12.27 |
| 백준 1120(문자열) 파이썬 (0) | 2022.12.22 |
| 백준 2579번(계단 오르기) 파이썬 (0) | 2022.12.22 |
| 백준 1049번(기타줄) 파이썬 (0) | 2022.12.22 |