Sqsung DevLog

[백준] 1969번: DNA - Node.js (자바스크립트) 본문

Algorithm

[백준] 1969번: DNA - Node.js (자바스크립트)

sqsung 2023. 5. 31. 12:28

1. 문제 ㅡ 1969번: DNA (난이도: Silver IV)

 

1969번: DNA

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

www.acmicpc.net

2. 풀이 ㅡ Node.js (자바스크립트)

const [info, ...input] = require('fs').readFileSync('/dev/stdin').toString().split('\n');

const [N, DNA_LENGTH] = info.split(' ').map(val => +val);

const getDNA = () => {
  const answer = [];
  let distance = 0;

  for (let i = 0; i < DNA_LENGTH; i++) {
    const counts = { A: 0, C: 0, G: 0, T: 0 };
    let max = null;

    for (let j = 0; j < N; j++) {
      counts[input[j][i]] += 1;

      if (max === input[j][i]) continue;

      if (!max || counts[max] < counts[input[j][i]] || (counts[max] === counts[input[j][i]] && input[j][i] < max)) {
        max = input[j][i];
      }
    }

    answer.push(max);
    distance += N - counts[max];
  }

  return answer.join('') + '\n' + distance;
};

console.log(getDNA());