새소식

반응형
Algotithms

[백준] 20365 블로그2

  • -
728x90
반응형

문제

  • N개의 문제가 있다. 해결한 문제는 파란색(B), 해결하지 못한 문제는 빨간색(R)으로 표현한다.
  • 문제를 칠할 때는 연속된 임의의 문제들을 선택하고, 선택된 문제들을 전부 원하는 같은 색으로 칠한다.
  • 가장 효율적으로 색을 칠하는 최소 작업 횟수 구하기

 

  • 1 <= N <= 500,000

 

풀이

  • 전체를 한 번에 첫 문제와 같은 색으로 칠한 뒤 사이에 있는 다른 색을 다시 바꿔준다.
    • rb -> 첫 문제와 반대되는 색
    • cnt -> 전체를 한 번에 첫 문제와 같은 색으로 칠하므로 1로 시작한다.
    • 만약 색이 달라지는 구간이 나오면 다시 칠해야 하므로 cnt + 1 해준다.

 

N = int(input())
paint = input()

rb = 'B' if paint[0] == 'R' else 'R'
cnt = 1
for i in range(1, N) :
    if paint[i] == rb and paint[i-1] != rb :
        cnt += 1

print(cnt)

 

References

  • 백준 그리디
반응형

'Algotithms' 카테고리의 다른 글

[백준] 4096 지뢰찾기  (0) 2023.10.24
[백준] 2056 작업  (1) 2023.10.23
[백준] 11066 파일 합치기  (0) 2023.10.20
[백준] 4659 비밀번호 발음하기  (1) 2023.10.20
[백준] 1277 발전소  (1) 2023.10.19
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.