본문 바로가기

Algorithm/문제풀이

Codility Lesson5 - GenomicRangeQuery

🔍 문제


 

 

GenomicRangeQuery coding task - Learn to Code - Codility

Find the minimal nucleotide from a range of sequence DNA.

app.codility.com

 

✏️ 풀이 - JS


function solution(S, P, Q) {
   let resultArr = [];

   for(let i = 0; i < P.length; i++) {
          // slice메소드는 두 번째 index까지는 포함시키지 않으므로 포함해서 자를수있도록 +1 해줌
       let temp = S.slice(P[i], Q[i]+1); 

        if(temp.indexOf('A') !== -1) {
            resultArr.push(1);
        } else if (temp.indexOf('C') !== -1) {
            resultArr.push(2);
        } else if (temp.indexOf('G') !== -1) {
            resultArr.push(3);
        } else {
            resultArr.push(4);
        }
   }

   return resultArr;

}

처음에 문제를 읽었을 때 도통 무슨 말인지 이해를 못하다가 예제를 보고 이해할 수 있었다. 문제에서 설명해준대로 머리 굴리지않고 그대로 풀었다. 문자열 S를 P, Q 배열 값을 slice 메소드의 인자로 넣어 잘라준 뒤, 가장 작은 값을 가진 A부터 시작해서 자른 문자열이 가지고 있는지 확인 한 후, 최종적으로 return할 resultArr 배열에 push 해주었다. 정확도 100% 효율성100%로 pass하였다.

'Algorithm > 문제풀이' 카테고리의 다른 글

Codility Lesson6 - MaxProductOfThree  (0) 2019.08.09
Codility Lesson5 - CountDiv  (0) 2019.08.08
Codility Lesson5 - MinAvgTwoSlice  (0) 2019.08.08
Codility Lesson5 - PassingCars  (0) 2019.08.07
Codility Lesson4 - MissingInteger  (0) 2019.08.07