728x90
2806번: DNA 발견
국내 생물학자들은 기존에 보지 못했던 신기한 DNA 분자를 발견했다. 이 분자는 A와 B로만 이루어진 N글자로 나타낼 수 있다. 이 분자는 계속해서 돌연변이를 한 다음에, A로만 된 분자로 변한다.
www.acmicpc.net
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
Main m = new Main();
m.doit();
}
public void doit() throws IOException{
// System.setIn(new FileInputStream("input.txt"));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
char[] arr = br.readLine().toCharArray();
// System.out.println(Arrays.toString(arr));
int dp[][] = new int[2][N];
if(arr[0] == 'A'){
dp[0][0] = 0;
dp[1][0] = 1;
}else{
dp[0][0] = 1;
dp[1][0] = 0;
}
for(int i = 1; i < N; i++){
if(arr[i] == 'A'){
dp[0][i] = Math.min(dp[0][i-1], dp[1][i-1]+1);
dp[1][i] = Math.min(dp[1][i-1]+1, dp[0][i-1]+1);
}else{
dp[0][i] = Math.min(dp[0][i-1]+1, dp[1][i-1]+1);
dp[1][i] = Math.min(dp[1][i-1], dp[0][i-1]+1);
}
}
// System.out.println(Arrays.toString(dp[0]));
// System.out.println(Arrays.toString(dp[1]));
System.out.println(Math.min(dp[0][N-1], dp[1][N-1]+1));
br.close();
}
}
728x90
반응형
'IT 정보 > 알고리즘(백준, BOJ)' 카테고리의 다른 글
[백준-BOJ] 2864 (0) | 2021.02.18 |
---|---|
[백준-BOJ] 2839 (0) | 2021.02.18 |
[백준-BOJ] 2696 (0) | 2021.02.15 |
[백준-BOJ] 2680 (0) | 2021.02.15 |
[백준-BOJ] 2673 (0) | 2021.02.15 |