일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Node.js
- MYSQL
- 자바스크립트
- JavaScript
- 알고리즘
- 장고 프로젝트 순서
- 개발
- 북마크만들기
- Django Blog
- Algorithm
- mongodb
- 독립영화플랫폼
- Blog
- join()
- 프로젝트
- MyPick31
- ART_Cinema
- 예술영화추천
- 타사인증
- 장고 프로젝트
- 파이썬 웹프로그래밍 장고
- python
- til
- 장고 개발 순서
- Exercism
- Bookmark
- Django
- 장고
- 북마크앱
- passport.js
- Today
- Total
Juni_Dev_log
(200125_TIL) 'Gigasecond', 'RNA Transcription' 본문
▶ 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
기가초를 밀리초로 바꿔서 계산을 하는 것이 용이해보였다.
주어진 시간(startDate)을 millisecond로 계산하고 => const startTime = startDate.getTime();
(getTime()을 사용하면, 현재시간을 밀리초로 변환할 수 있다.
변환된 시간에 기가초를 더한 후, 반환해주면 된다. => const endDate = new Date(startTime + GIGASECOND);
▶ 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 의 형태로 변환시켰다.
'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 |