728x90
https://www.acmicpc.net/problem/20365
손풀겸 푸는 문제 2
가장 넓게 색을 입히는 방법으로 리스트의 앞 뒤를 인덱스로 접근해서 풀었다.
가리키는게 다른 색이면 앞에서만, 같은 색이면 양쪽에서 인덱스를 이동한다.
def main():
N = int(input())
s = input()
f, b = 0, N - 1
cnt = 0
while f <= b and f < N and b >= 0:
init_f = s[f]
init_b = s[b]
cnt += 1
# 순방향 순회
while f < N and s[f] == init_f:
f += 1
if init_f != init_b:
continue
# 역방향 순회
while b >= 0 and s[b] == init_b:
b -= 1
print(cnt)
if __name__ == "__main__":
main()
'STUDY > Algorithm' 카테고리의 다른 글
[백준] 1718 암호 python (0) | 2022.01.12 |
---|---|
[백준] 9489 사촌 python (0) | 2022.01.11 |
[백준] 1668 트로피 진열 python (0) | 2022.01.11 |
[백준] 1956 운동 python(pypy) (0) | 2022.01.10 |
[백준]11401 이항 계수 3, python (0) | 2022.01.09 |