백준 문제풀이 20365 블로그2
boj 20365 : 블로그2
문제 주소: https://www.acmicpc.net/problem/20365
난이도: silver 2
1.문제설명
- 두가지 색을 칠해야한다.
- 원한다면 이어서 한번에 칠할 수 있다.
- 칠해야 할 색의 리스트가 있을때 ex) RBBRRRBR, 이때 R: red, B: blue
- 최소한의 작업횟수는?
2.문제해결 아이디어.
- 처음에는 단순하게 빨간, 파란중에 많이나오는 색으로 한번에 밀어버린다음, 적은색만 칠하려함 -> 실패
- count를 빨간색, 파란색 두가지에대해 따로 진행
3.문제접근법
#딕셔너리를 이용해서 작업횟수 기록
#B는 B로 몇번 바꿔 칠해야하는지, R은 R로 몇번 바꿔 칠해야하는지 기록
color_dict = {'B' : 0, 'R' : 0}
#첫번째 문자 count
color_dict[tasks[0]] += 1
#칠해야하는 색이 바뀌면 새로운 색에 +1 해줌
for i in range(1, N):
if tasks[i] != tasks[i-1]:
color_dict[tasks[i]] += 1
4.특별히 참고할 사항
- 두개의 케이스를 카운팅해야했다.
5.코드구현
import sys
input = sys.stdin.readline
N = int(input())
tasks = input().rstrip()
color_dict = {'B' : 0, 'R' : 0}
color_dict[tasks[0]] += 1
for i in range(1, N):
if tasks[i] != tasks[i-1]:
color_dict[tasks[i]] += 1
print(min(color_dict['R'], color_dict['B']) + 1)
Author And Source
이 문제에 관하여(백준 문제풀이 20365 블로그2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@qlql323/백준-문제풀이-20365-블로그2
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
문제 주소: https://www.acmicpc.net/problem/20365
난이도: silver 2
#딕셔너리를 이용해서 작업횟수 기록
#B는 B로 몇번 바꿔 칠해야하는지, R은 R로 몇번 바꿔 칠해야하는지 기록
color_dict = {'B' : 0, 'R' : 0}
#첫번째 문자 count
color_dict[tasks[0]] += 1
#칠해야하는 색이 바뀌면 새로운 색에 +1 해줌
for i in range(1, N):
if tasks[i] != tasks[i-1]:
color_dict[tasks[i]] += 1
import sys
input = sys.stdin.readline
N = int(input())
tasks = input().rstrip()
color_dict = {'B' : 0, 'R' : 0}
color_dict[tasks[0]] += 1
for i in range(1, N):
if tasks[i] != tasks[i-1]:
color_dict[tasks[i]] += 1
print(min(color_dict['R'], color_dict['B']) + 1)
Author And Source
이 문제에 관하여(백준 문제풀이 20365 블로그2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@qlql323/백준-문제풀이-20365-블로그2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)