Notice
Recent Posts
Recent Comments
Link
«   2025/12   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

똥그래미 코딩공장

백준 1439번(뒤집기) 파이썬 본문

Algorithm

백준 1439번(뒤집기) 파이썬

동그라미_ssu 2022. 12. 27. 20:30

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