dnaToRna.js (8kyu 44)

Codewars 알고리즘 풀이


Problem

  • DNA is the primary informations storage molecule in biological systems.
    • DNA는 생물학적 시스템의 기본 정보 저장 분자이다.
  • RNA is the primary messenger molecule in cells.
    • RNA는 세포의 기본 전달 분자이다.
  • RNA differs slightly from DNA its chemical structure and contains no Thymine.
    • RNA는 DNA와 화학 구조가 약간 다르며, Thymine(T)을 포함하지 않는다.
  • In RNA Thymine is replaced be another nucleic acid Uracil(U).
    • RNA Thymine(T)은 다른 핵산 Uracil(U)로 대체된다.
  • Create a function which translates a given DNA string into RNA.
    • 주어진 문자열을 RNA로 변형한다.


Solution 01

function dnaToRna(dna) {
  let result = '';
  
  for (let i = 0; i < dna.length; i++) {
    if (dna[i] === 'T') {
      result += 'U';
    } else {
      result += dna[i];
    }
  }
  return result;
}

dnaToRna('GCAT');  // GCAU
dnaToRna('TTTT');  // UUUU


Solution 02

function dnaToRna(dna) {
  let result = '';
  
  for (let i = 0; i < dna.length; i++) {
    dna[i] === 'T' ? result += 'U' : result += dna[i];
  }
  return result;
}

dnaToRna('GCAT');  // GCAU
dnaToRna('TTTT');  // UUUU


Solution 03

function dnaToRna(dna) {
  return dna.split('T').join('U');
}

dnaToRna('GCAT');  // GCAU
dnaToRna('TTTT');  // UUUU

split() 메소드

문자열을 부분 문자열로 분할하고, 새 배열로 반환한다.

join() 메소드

배열의 모든 element를 결합하고, 새 문자열로 반환한다.


Solution 04

function dnaToRna(dna) {
  return dna.replace(/T/g, 'U');
}

dnaToRna('GCAT');  // GCAU
dnaToRna('TTTT');  // UUUU

정규표현식 (RegExp)

replace(): 대응되는 문자열을 찾아 다른 문자열로 치환한다.

g: 전역 검색