본문 바로가기

OJ

[BOJ] 1969 DNA (JAVA)

https://www.acmicpc.net/problem/1969

 

1969번: DNA

DNA란 어떤 유전물질을 구성하는 분자이다. 이 DNA는 서로 다른 4가지의 뉴클레오티드로 이루어져 있다(Adenine, Thymine, Guanine, Cytosine). 우리는 어떤 DNA의 물질을 표현할 때, 이 DNA를 이루는 뉴클레오

www.acmicpc.net

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
	
    public static void main(String[] args) throws Exception {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        int N = Integer.parseInt(st.nextToken());
        int M = Integer.parseInt(st.nextToken());
        String[] input = new String[N];
        for (int i = 0; i < N; i++) {
            input[i] = br.readLine();
        } // end of input

        String result = "";
        int hd = 0;
        char[] dna = { 'A', 'C', 'G', 'T' };
        int[] cnt;

        for (int j = 0; j < M; j++) {

            cnt = new int[4];

            for (int i = 0; i < N; i++) {

                char c = input[i].charAt(j);

                switch (c) {
                    case 'A' :
                        cnt[0]++;
                        break;
                    case 'C' :
                        cnt[1]++;
                        break;
                    case 'G' :
                        cnt[2]++;
                        break;
                    case 'T' :
                        cnt[3]++;
                        break;
                }

            }

            int max = 0;
            int index = 0;

            for (int i = 0; i < 4; i++) {
                if (max < cnt[i]) {
                    max = cnt[i];
                    index = i;
                }
            }

            result += dna[index];
            hd += N - cnt[index];

        }

        System.out.print(result + "\n" + hd);

    }

}

'OJ' 카테고리의 다른 글

[BOJ] 1032 명령 프롬프트 (JAVA)  (0) 2023.02.17
[BOJ] 5635 생일 (JAVA)  (0) 2023.02.16
[BOJ] 2234 성곽 (JAVA)  (0) 2023.02.14
[BOJ] 11478 서로 다른 부분 문자열의 개수 (JAVA)  (0) 2023.02.13
[BOJ] 17609 회문 (JAVA)  (0) 2023.02.12