Juni_Dev_log

(200125_TIL) 'Gigasecond', 'RNA Transcription' 본문

CodingTest/Exercism

(200125_TIL) 'Gigasecond', 'RNA Transcription'

Juni_K 2021. 1. 25. 17:51

▶ Gigasecond

Gigasecond

(Problem)

Introduction

Given a moment, determine the moment that would be after a gigasecond has passed.

A gigasecond is 10^9 (1,000,000,000) seconds.

It is possible to return a correct value for this exercise by mutating the solution function argument.

Although there are legitimate use cases for mutating function arguments, this is usually undesirable, and in the case of this exercise, clearly unexpected.

For this reason, the test suite has a test that fails in case the argument has been modified after the function execution.

 

- 지금부터 기가초(gigasecond)만큼 흐른 시간을 한 번 계산해보자. 계산하고서, 날짜로 변경해야한다.

 

(Solution)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
// 1 gigasecond = 1,000,000,000,000 seconds
const GIGASECOND = 1000000000000;
 
export const gigasecond = (startDate) => {
  // 주어진 시간에 1 gigasecond를 더하고 날짜로 바꿔주면 됨.
  // Just add 1 gigasecond to the startDate and convert it to a date.
  // 그렇게 하기 위해서, 주어진 시간을 second 로 변환.
  // To do so, convert the startDate to second. (using getTime())
  const startTime = startDate.getTime();
  // 변환된 second와 변환된 GIGASECOND를 더하고 날짜로 바꿔준다.
  // The converted second and converted GIGASECOND are added and converted into a date.
  const endDate = new Date(startTime + GIGASECOND);
  return endDate;
};
 
 
cs

해당 문제를 풀기 위해서 기가초(gigasecond)에 대한 정보를 알아보았다.

 

conversion.org/time/gigaseconds/millisecond

 

gigaseconds-millisecond conversion

Conversion number between gigaseconds [Gs] and millisecond [ms] is 1000000000000. This means, that gigaseconds is bigger unit than millisecond. Copy to Excel [gigaseconds] [millisecond] 0 0 10 10000000000000 20 20000000000000 30 30000000000000 40 400000000

conversion.org

 

1 기가초 = 1,000,000,000,000 밀리초

기가초를 밀리초로 바꿔서 계산을 하는 것이 용이해보였다.

 

주어진 시간(startDate)을 millisecond로 계산하고 => const startTime = startDate.getTime();

(getTime()을 사용하면, 현재시간을 밀리초로 변환할 수 있다.

 

poiemaweb.com/js-date

 

Date | PoiemaWeb

Date 객체는 날짜와 시간을 위한 메소드를 제공하는 built-in 객체이다. 내부적으로 Date 객체는 숫자값을 갖는다. 이 값은 1970년 1월 1일 00:00(UTC)을 기점으로 현재 시간까지의 밀리초를 나타낸다.

poiemaweb.com

변환된 시간에 기가초를 더한 후, 반환해주면 된다. => const endDate = new Date(startTime + GIGASECOND);

 

▶ RNA Transcription

RNA Transcription

(Problem)

Introduction

Given a DNA strand, return its RNA complement (per RNA transcription).

Both DNA and RNA strands are a sequence of nucleotides.

The four nucleotides found in DNA are adenine (A), cytosine (C), guanine (G) and thymine (T).

The four nucleotides found in RNA are adenine (A), cytosine (C), guanine (G) and uracil (U).

Given a DNA strand, its transcribed RNA strand is formed by replacing each nucleotide with its complement:

  • G -> C
  • C -> G
  • T -> A
  • A -> U

주어진 DNA 가닥을 RNA 가닥으로 변환시켜보자.

변환시키기 위해서는, DNA에 들어있는 뉴클리오타이드인, "A/C/G/T" 를 RNA에 들어있는 "A/C/G/U"로 변환시키면 된다.

 

(Solution)

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
//
// This is only a SKELETON file for the 'RNA Transcription' exercise. It's been provided as a
// convenience to get you started writing code faster.
//
 
// dna 를 rna 로 바꾸는 함수를 만들어보자.
 
export const toRna = (Dna) => {
  var Rna = "";
  for (var i=0; i < Dna.length; i++){
    //Dna 문자열의 배열을 하나씩 반복문으로 비교해서 변환한다.
    if(Dna[i] == 'G'){
        Rna += Dna[i].replace('G','C');
    }
    if(Dna[i] == 'C'){
        Rna += Dna[i].replace('C','G');
    }
    if(Dna[i] == 'T'){
        Rna += Dna[i].replace('T','A');
    }
    if(Dna[i] == 'A'){
        Rna += Dna[i].replace('A','U');
    }
  }
  return Rna;
};
 
cs

for 문과 if문을 이용해서, 파라미터로 들어오는 Dna를 replace 를 활용해서 Rna 의 형태로 변환시켰다.

 

hianna.tistory.com/341

 

[Javascript] 문자열에서 특정 문자열 치환하기 (replace)

Javascript의 문자열에서 '특정 문자열'을 찾아서 '치환'해주는 방법을 알아보도록 하겠습니다. 문자열 내의 특정 문자열을 치환해 주기 위해서 Javascript에서는 replace() 함수를 사용합니다. replace() st

hianna.tistory.com

 

'CodingTest > Exercism' 카테고리의 다른 글

(200128_TIL) 'Bank Account'  (0) 2021.01.28
(200127_TIL) 'Pangram'  (0) 2021.01.27
(200126_TIL) 'Space Age'  (0) 2021.01.26
(200124_TIL) 'Resistor Color', 'Resistor Color Duo'  (0) 2021.01.24
(210123_TIL) 'Hello World', 'Two Fer'  (0) 2021.01.23
Comments