728x90
https://www.acmicpc.net/problem/20365
20365번: 블로그2
neighbor 블로그를 운영하는 일우는 매일 아침 풀고 싶은 문제를 미리 정해놓고 글을 올린다. 그리고 매일 밤 각각의 문제에 대하여, 해결한 경우 파란색, 해결하지 못한 경우 빨간색으로 칠한
www.acmicpc.net
손풀겸 푸는 문제 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 |