본문 바로가기
Algorithm Study/BaekJoon (JAVA)

백준 1969_DNA_JAVA

by 창브로 2024. 3. 28.
728x90

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

 

1969번: DNA

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

www.acmicpc.net

import java.util.*;
import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        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[] strArr = new String[N];
        int hd = 0, max = 0;
        String answer = new String();

        for (int i = 0; i < N; i++) {
            strArr[i] = br.readLine();
        }

        for (int i = 0; i < M; i++) {
            int a = 0, t = 0, g = 0, c = 0;
            for (int j = 0; j < N; j++) { // 어떤 알파벳이 가장 많은지 확인
                char dna = strArr[j].charAt(i);
                switch (dna) {
                    case 'A':
                        a++;
                        break;
                    case 'T':
                        t++;
                        break;
                    case 'G':
                        g++;
                        break;
                    case 'C':
                        c++;
                        break;
                }
            }
            max = Math.max(a>c?a:c, g>t?g:t);
            hd += N-max; // 문제에서 구하라던 dna알파벳 다른 갯수 구하기
            answer += getMax(a, t, g, c, max); // 가장 많이 나온 char 반환

        }

        System.out.println(answer);
        System.out.print(hd);
    }
    private static char getMax(int a, int t, int g, int c, int max) {
        if(a==max) return 'A';
        else if(c==max) return 'C';
        else if(g==max) return 'G';
        else return 'T';
    }
}

 

회고

- 문제를 이해를 못해서 오랜 시간이 걸렸다.

- 알파벳 순서대로 나타내는 걸 까먹어 많이 틀렸다.

- 문제를 잘 이해하도록 노력해야겠다.

'Algorithm Study > BaekJoon (JAVA)' 카테고리의 다른 글

백준 4358_생태계_JAVA  (0) 2024.03.29
백준 2745_진법 변환_JAVA  (0) 2024.03.28
백준 1764_듣보잡_JAVA  (0) 2024.03.27
백준 1181_단어 정렬_JAVA  (0) 2024.03.26
백준 14888_연산자 끼워넣기_JAVA  (0) 2024.03.25