728x90
반응형
SMALL
✏️ 문제
문제 파악
첫 문자와 다른 문자의 덩어리 개수(?)와 문제에서 구해야 하는 행동의 최소 횟수가 같아서
예제1의 경우 첫 문자인 0과 다른 1의 덩어리 개수가 1개이므로 이 11을 한 번에 바꾸면 바로 적합하게 된다.
그래서 이를 기준으로 다른 문자 덩어리(?)가 끝나는 부분을 활용하여
현재 문자가 첫 문자와 다르고 and 현재 문자의 다음 문자가 첫 문자와 같으면 횟수를 +1 하는 걸로 처음에 코드를 짰다.
하지만 이렇게 하게 되면 입력이 00000001로 들어올 때 예상 출력인 1이 아닌 0으로 나오게 된다.
그래서 조건을 수정하여 현재 문자가 첫 문자와 같고 and 현재 문자의 다음 문자가 첫 문자와 다르면 횟수를 +1 하는 걸로 코드를 수정하였다.
알고리즘
- 그리디 알고리즘
- 문자열
코드
s = input()
num = 0
for i in range(len(s)-1):
if s[i] == s[0] and s[i +1] != s[0]:
num += 1
print(num)
728x90
반응형
LIST
'PS > 백준' 카테고리의 다른 글
[Python] 1946번 신입 사원 (0) | 2024.07.15 |
---|---|
[Python] 10610번 30 (0) | 2024.07.15 |
[Python] 13305번 주유소 (0) | 2024.07.15 |
[Python] 1026번 보물 (2) | 2024.07.14 |
[Python] 1931번 회의실 배정 (0) | 2024.07.14 |