링크 : https://www.acmicpc.net/problem/1439
- 문제
- 소요시간: 18분 49초



- 설계하기(접근방 법)
1. 문자를 입력받는다.
2. 알고리즘
0과 1이 서로 교차할 때를 카운트한다
만약 0011 와같이 1번 교차할때, 그리고 11001과 같이 2번 교차할때는 전부 1번이면 같게 할 수 있다.
0011001은 3번 교차, 001100110은 4번 교차하는데 2번으로 모든 숫자를 같게 할 수 있다
즉 ((교차하는 카운트) + 1)를 하고 2로 나눈 몫이 최소 횟수라고 볼 수 있다.
- 코드(출력)
import sys
input = sys.stdin.readline
s = list(input())
cnt = 0
tmp = s[0]
for i in range(1, len(s) - 1): # 문자열의 길이만큼
if (s[i] != tmp):
cnt += 1
tmp = s[i]
result = (cnt + 1) // 2
print(result)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
s = list(input())
cnt = 0
tmp = s[0]
for i in range(1, len(s)): # 문자열의 길이만큼
if (s[i] != tmp):
cnt += 1
tmp = s[i]
result = (cnt + 1) // 2
print(result)
- 얻어갈 부분
1. 자꾸 문제가 틀려 왜 그런지 체크했는데, sys.input.readline은 개행문자까지 입력을 받기 때문에
range, len함수를 사용하는 경우 마지막 리스트에 '\n' 이 입력된다. 따라서 리스트를 받을 때는 조심하자
2. 시간초과가 나지 않는다면 굳이 sys 를 사용하지 말자. 코드가 꼬일 수도 있다.
'알고리즘(백준) > 그리디' 카테고리의 다른 글
| [알고리즘/그리디] 1758번 : 알바생 강호 - python (0) | 2023.05.09 |
|---|---|
| [알고리즘/그리디] 1946 번 : 신입 사원 - python (0) | 2023.03.02 |
| [알고리즘/그리디] 1931 번 : 회의실 배정 - python (0) | 2023.02.22 |
| [알고리즘/그리디] 10610 번 : 30 - python (0) | 2023.02.21 |
| [알고리즘/그리디] 13305번 : 주유소 - python (0) | 2023.02.21 |