일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 13913번
- 1969번
- 1541번
- node.js
- 7526번
- 자바스크립트
- 타입스크립트 프로그래밍
- 17626번
- 2503번
- 16439번
- 123만들기
- 타입스크립트
- 2422번
- javascript
- 정리
- 16953번
- 1926번
- 백준
- 알고리즘
- 한윤정이 이탈리아에 가서 아이스크림을 사먹는데
- 토마토
- 나이트의이동
- 20365번
- 5427번
- 맥주마시면서걸어가기
- 14940번
- 풀이
- 5014번
- 6593번
- 20300번
Archives
- Today
- Total
Sqsung DevLog
[백준] 1969번: DNA - Node.js (자바스크립트) 본문
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());
'Algorithm' 카테고리의 다른 글
[백준] 10026번: 적록색약 - Node.js (자바스크립트) (0) | 2023.06.01 |
---|---|
[백준] 1927번: 최소 힙 - Node.js (자바스크립트) (1) | 2023.05.31 |
[백준] 14940번: 쉬운 최단거리 - Node.js (자바스크립트) (0) | 2023.05.29 |
[백준] 9375번: 패션왕 신해빈 - Node.js (자바스크립트) (0) | 2023.05.27 |
[백준] 7569번: 토마토 (II) - Node.js (자바스크립트) (1) | 2023.05.26 |