상세 컨텐츠

본문 제목

[Codility] MaxCounters

Development/알고리즘

by J-Developer 2020. 6. 28. 14:38

본문

반응형

[문제]

 

 

 

[답안작성]

 

- 시간복잡도 : O(N*M)

class Solution {
    public int[] solution(int N, int[] A) {
        
        int[] resultArr = new int[N];
        
        for( int a : A ) {
            
            if( a > N ) {
                
                int[] tempArr = resultArr.clone();
                Arrays.sort( tempArr );
                
                for( int i = 0; i < N; i++ ) {
                    resultArr[i] = tempArr[N - 1];
                }
                
            }
            else {
                ++resultArr[a - 1];
            }
            
        }
        
        return resultArr;
        
    }
}

 

[다른 답안 작성]

 

- 시간복잡도 : O(N*M) (Score 66%)

class Solution {
    public int[] solution(int N, int[] A) {
        
        int[] resultArr = new int[N];
        int maxValue = 0;
        
        for( int a : A ) {
            
            if( a > N ) {
                
                int[] tempArr = resultArr.clone();
                Arrays.sort( tempArr );
                maxValue = tempArr[N - 1];
                
            }
            else {
                if( resultArr[a - 1] < maxValue ) {
                    resultArr[a - 1] = maxValue + 1;
                }
                else {
                    ++resultArr[a - 1];
                }
            }
            
        }
        
        for( int i = 0; i < N; i++ ) {
            if( resultArr[i] < maxValue ) {
                resultArr[i] = maxValue;
            }
        }
        
        return resultArr;
        
    }
}

 

 

시간복잡도 어렵다....

반응형

'Development > 알고리즘' 카테고리의 다른 글

소수 구하는 방법  (1) 2024.09.21
[codility] FrogRiverOne  (0) 2020.06.28
[Codility] TapeEquilibrium  (0) 2020.06.28
[Codility]PermMissingElem  (0) 2020.06.28
[Codility]FrogJmp  (0) 2020.06.27

관련글 더보기

댓글 영역