아이공의 AI 공부 도전기

[Baekjoon] 1439번 : 뒤집기 (Python, 문자열)

 

     

 

 

https://www.acmicpc.net/problem/1439

 

1439번: 뒤집기

다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모

www.acmicpc.net

 

코드 링크

https://github.com/stellaluminary/Baekjoon

 

GitHub - stellaluminary/Baekjoon

Contribute to stellaluminary/Baekjoon development by creating an account on GitHub.

github.com

 

Python

 

방법 1 - 메모리 30840KB / 시간 68ms / 코드 길이 144B

 

 앞의 문자와 같다면 하나 제거하고 다르면 그대로 두는 방식으로 for문을 돌린다.

이를 통해 '0001100'은 '010'으로 변한다.

이를 list로 변환시켜 1의 개수와 0의 개수 중 작은 것을 선택하여 출력한다.

 

n = list(input())
s = n[0]
for i in range(1, len(n)):
    if s[-1] != n[i]:
        s += n[i]
t = list(s)
print(min(t.count('1'), t.count('0')))

 

방법 2 - 메모리 30840KB / 시간 68ms / 코드 길이 112B

 

 같지 않을 때의 횟수를 센 다음 +1 이후 2로 나눈 몫을 출력한다.

 

 

n = input()
cnt = 0
for i in range(len(n)-1):
    if n[i] != n[i+1]:
        cnt += 1
        
print((cnt+1)//2)

 

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading