1. 유형
그리디
2. 풀이
RRBRBB가 있을때, 맨 뒤에서 시작하는 경우와 맨 앞에서 시작하는 경우 두가지로 나눠서 생각한다.
RR부터 시작하면 뒤에R과 B의 갯수를 세어준다. 3과 1이 나오고, 그중 최소값을 저장
BB부터 탐색 시작하면 뒤에 R이 3개 B가 1개 나온다. 그중 최소값을 저장
그 두개를 비교한다.
3. 코드
package 그리디;
import java.util.Scanner;
public class back_17615볼모으기 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n=sc.nextInt(); sc.nextLine();
String str = sc.nextLine();
char lastColor = str.charAt(n-1);
int red = 0;
int blue = 0;
boolean flag = false;
for (int i = str.length()-2; i >= 0 ; i--) {
if(lastColor == str.charAt(i) && !flag) {
continue;
}
else {
flag = true;
if(str.charAt(i)=='R')
red++;
else
blue++;
}
}
int res1 = Math.min(red, blue);
red = 0;
blue = 0;
flag = false;
char firstColor = str.charAt(0);
for (int i =1; i<str.length(); i++) {
if(firstColor == str.charAt(i) && !flag) {
continue;
}
else {
flag = true;
if(str.charAt(i)=='R')
red++;
else
blue++;
}
}
int res2 = Math.min(red, blue);
System.out.println(Math.min(res1, res2));
}
}
4. 느낀점
없음.
'알고리즘 > 백준' 카테고리의 다른 글
[백준 - 11000] 골드5 - 강의실 배정 (0) | 2020.10.22 |
---|---|
[백준 - 2812] 골드5 -크게 만들기 (0) | 2020.10.20 |
[백준 - 16235] 골드4 - 나무재테크 (0) | 2020.10.19 |
[백준 - 16236] 골드5 - 아기상어 (0) | 2020.10.16 |
[백준 - 17143] 골드2 - 낚시왕 (0) | 2020.10.15 |