정해진 문자의 짝을 찾는 문제다. 주어진 문자는 "AT", "CG" 이다.
매개변수로 "CGC" 값이 들어오면 [["C","G"],["G","C"],["C","G]] 로 결과로 반환해야한다.
function pairElement(str) {
let result = [];
for (let i = 0; i < str.length; i++) {
result.push(atcgPair(str[i]));
}
return result;
}
// 짝을 찾는 함수
function atcgPair(letter) {
if (letter === "A") {
return [letter, "T"];
} else if (letter === "T") {
return [letter, "A"];
} else if (letter === "C") {
return [letter, "G"];
} else if (letter === "G") {
return [letter, "C"];
}
}
pairElement("GCG");
처음에 했을 때 for문을 이용해서 해결을 했었다. 하다보니 for문을 사용하지 않고 map 메소드를 이용해서 해결할 수 도 있겠다는 생각이 들었다.
function pairElement(str) {
let splitStr = str.split(""); // 글자를 split로 나누었다.
return splitStr.map(atcgPair);
}
코드가 좀더 간결해졌다. 짝을 찾는 함수 atcgPair 를 switch 문을 이용하면 어떤지 궁금해서 바꿨다.
// 짝을 찾는 함수
function atcgPair(letter) {
switch(letter) {
case "A" :
return [letter, "T"];
case "T" :
return [letter, "A"];
case "C" :
return [letter, "G"];
case "G" :
return [letter, "C"];
}
}
switch 문으로 바꾸니깐 간결해 졌다.
function pairElement(str) {
let splitStr = str.split("");
return splitStr.map(atcgPair)
}
function atcgPair(letter) {
switch(letter) {
case "A" :
return [letter, "T"];
case "T" :
return [letter, "A"];
case "C" :
return [letter, "G"];
case "G" :
return [letter, "C"];
}
}