PS/BOJ

[Python] 1439번 뒤집기

s_omi 2024. 7. 15. 10:08
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 > BOJ' 카테고리의 다른 글

[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