IT 정보/알고리즘(백준, BOJ)

[백준-BOJ] 2806

Dalyoung 2021. 2. 18. 22:20
728x90

www.acmicpc.net/problem/2806

 

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