링크 : https://www.acmicpc.net/problem/20365
20365번: 블로그2
neighbor 블로그를 운영하는 일우는 매일 아침 풀고 싶은 문제를 미리 정해놓고 글을 올린다. 그리고 매일 밤 각각의 문제에 대하여, 해결한 경우 파란색, 해결하지 못한 경우 빨간색으로 칠한
www.acmicpc.net
- 문제
- 소요시간: 38분 12초



- 설계하기(접근방법)
1. 입력받기
2. 알고리즘 해석
1.색깔이 바뀔때마다 바꾸는 것보다
B , R 중에 많은 색으로 먼저 다 칠한 후에
다른 색으로 중간 중간 칠해주는 것이 무조건 같거나 더 빠르다
2.색의 개수는 중요하지 않다. 어차피 연속적으로 칠하기 때문에
1개를 칠하나 연속된 4개를 칠하나 같은 강도이다.
3. 체크 항목
1) 리스트의 처음이 B 인 경우
B에서 R로 바뀌는 경우를 세면 된다
2) 리스트의 처음이 R인 경우
R에서 B로 바뀌는 경우를 세면 된다
그 후, 전체를 칠해준 횟수가 1번 있으니 cnt에 1 더하면 된다
3) 출력하기
- 코드(출력)
n = int(input())
br_list = list(input())
cnt = 1
for i in range(n):
if i == 0:
continue
if br_list[0] == 'B':
if br_list[i - 1] == 'B' and br_list[i] == 'R':
cnt += 1
if br_list[0] == 'R':
if br_list[i - 1] == 'R' and br_list[i] == 'B':
cnt += 1
print(cnt)
- 얻어갈 부분
1.쉽게 해석할 수 있는 것을 너무 어렵게 생각했다. 구현 문제가 아닌데 코드나 논리가 복잡해지는 것 같으면 다시 생각해보자
'알고리즘(백준) > 그리디' 카테고리의 다른 글
| [알고리즘/그리디] 21314번 : 민겸 - python (0) | 2023.05.23 |
|---|---|
| [알고리즘/그리디] 16953번 : A → B - python (0) | 2023.05.19 |
| [알고리즘/그리디] 20300번 : 서강 근육맨 - python (0) | 2023.05.12 |
| [알고리즘/그리디] 20115번 : 에너지 드링크 - python (0) | 2023.05.11 |
| [알고리즘/그리디] 1758번 : 알바생 강호 - python (0) | 2023.05.09 |