본문 바로가기

Developer/Algorithm

[codility_] GenomicRangeQuery-다시

app.codility.com/programmers/lessons/5-prefix_sums/genomic_range_query/

 

GenomicRangeQuery coding task - Learn to Code - Codility

Find the minimal nucleotide from a range of sequence DNA.

app.codility.com

1. 속도에서 점수 깍임

// you can also use imports, for example:
// import java.util.*;

// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");

class Solution {
    public int[] solution(String S, int[] P, int[] Q) {
        
        int []arrReturnValue = new int[P.length];
        int []arrConvertedNum = new int[S.length()];

        // 1. Convert String to Number (nucleotides)
        for(int i = 0 ; i < S.length(); i++)
        {
            switch(S.charAt(i))
            {
                case 'A':
                arrConvertedNum[i] = 1 ;
                break;

                case 'C':
                arrConvertedNum[i] = 2 ;
                break;

                case 'G':
                arrConvertedNum[i] = 3 ;
                break;

                case 'T':
                arrConvertedNum[i] = 4 ;
                break;

                default:
                break;
            }
        }
    
        // 2. Find Min Number (nucleotides)
        for(int i = 0 ; i < P.length ; i++)
        {
            int iTempMin = Integer.MAX_VALUE;
            for(int j = P[i] ; j <= Q[i] ; j++)
            {
                if(iTempMin > arrConvertedNum[j])
                {
                    iTempMin = arrConvertedNum[j];

                    if(iTempMin == 1) 
                        break;
                }
            }

            arrReturnValue[i] = iTempMin;

        }


        return arrReturnValue; 
    }
}

 

'Developer > Algorithm' 카테고리의 다른 글

[codility_] Distinct  (0) 2020.12.04
[codility_] PassingCars  (0) 2020.12.04
[codility_] CountDiv  (0) 2020.12.01
[codility_] PermCheck  (0) 2020.12.01
[codility_] MissingInteger  (0) 2020.12.01