백준 #6 (구현) - 뒤집기

ims·2021년 6월 16일
0

백준 문제풀이

목록 보기
6/17
post-custom-banner

📌 문제

110001001010110101 이렇게 예제가 있을 때

숫자를 연속되게만 뒤집을 수 있다.

최소로 뒤집을 수 있는 숫자를 반환하라

📌 아이디어

0을 뒤집을 때, 1을 뒤집을 때를 세주면 된다. 이 때, 뒤집는다는 것은

s[i] != s[i+1]

일 때 뒤집으므로

if s[i]==1 and s[i]!=s[i+1]
...

if s[i] == 0 and s[i]!=s[i+1]
...

0과 1일 때를 나누어서 세주면 된다.

단 이때, 마지막 항일때는 s[i+1]을 하게 되면 OutOfIndex 오류가 나므로,

i==len(s)-1 or s[i]!=s[i+1]

조건을 추가해준다

🔥 or 조건은 둘 중 하나만 맞아도 들어간다. 앞에 놈이 먼저 맞으면, 뒤에 놈은 걸리지 않는다.

📌 코드

s= input()

zero_value = 0
one_value = 0

for i in range(len(s)):
    if s[i]=='1' and (i==len(s)-1 or s[i]!=s[i+1]):
        zero_value+=1

for i in range(len(s)):
    if s[i]=='0' and (i==len(s)-1 or s[i]!=s[i+1]):
        one_value+=1

print(min(one_value,zero_value))
profile
티스토리로 이사했습니다! https://imsfromseoul.tistory.com/ + https://camel-man-ims.tistory.com/
post-custom-banner

0개의 댓글