1969번: DNA
DNA란 어떤 유전물질을 구성하는 분자이다. 이 DNA는 서로 다른 4가지의 뉴클레오티드로 이루어져 있다(Adenine, Thymine, Guanine, Cytosine). 우리는 어떤 DNA의 물질을 표현할 때, 이 DNA를 이루는 뉴클레오
www.acmicpc.net
접근 : BF, 구현
문제 접근을 잘못해서 고생했던 문제이다.
주어지는 입력 중 차이가 가장 적은 문자열을 찾는줄 알았는데 새로운 문자열을 생성하고 차이의 최소를 출력하는 문제였다.
잘못풀었다는 것을 알고 다시 코드를짜서 코드가 정신없이 작성되었다,
Javascript
let input = require("fs")
.readFileSync("input.txt") //"/dev/stdin"
.toString()
.split("\n")
.map((val) => val.trim());
function solution(input) {
//input
let [n, m] = input.shift().split(" ");
let dna = [];
let answer = [];
let psum = 0;
let D = ["A", "C", "G", "T"];
for (let i = 0; i < n; i++) {
let temp = input.shift();
dna.push(temp);
}
for (let i = 0; i < m; i++) {
let ACGT = [0, 0, 0, 0];
for (let j = 0; j < n; j++) {
if (dna[j][i] === "A") ACGT[0]++;
else if (dna[j][i] === "C") ACGT[1]++;
else if (dna[j][i] === "G") ACGT[2]++;
else ACGT[3]++;
}
let max = -9999;
idx = 0;
for (let a = 0; a < 4; a++) {
if (ACGT[a] > max) {
max = ACGT[a];
idx = a;
}
}
answer.push(D[idx]);
}
answer = answer.join("");
dna.forEach((v) => {
for (let i = 0; i < m; i++) {
if (answer[i] !== v[i]) psum++;
}
});
console.log(answer);
console.log(psum);
}
solution(input);
'코딩테스트(알고리즘) > baekjoon' 카테고리의 다른 글
[baekjoon] 2002 추월 (Javascript) (0) | 2022.06.24 |
---|---|
[baekjoon] 1769 3의 배수 (Javascript) (0) | 2022.06.24 |
[baekjoon] 5635 생일 (Javascript) (0) | 2022.06.24 |
[baekjoon] 18111 마인크래프트 (Javascript) (0) | 2022.06.23 |
[baekjoon] 2563 색종이 (Javascript) (0) | 2022.06.22 |