greenhelix
greenhelix
greenhelix
07-21 15:41
  • All (229)
    • Algorithm (118)
      • Algorithm (17)
      • Graph (0)
      • Core (6)
      • Python (18)
      • PythonSnippet (4)
      • Java (59)
      • Kotlin (14)
    • Project (0)
    • Study (8)
      • License (5)
      • EIP (3)
    • Programming (63)
      • Android (41)
      • Flutter (1)
      • Bugs Life (21)
      • Linux (0)
    • Tech (32)
      • Tech (17)
      • Drone (4)
      • Hacking (11)
    • Life (6)
      • INGRESS (1)
      • 심시티빌드잇 (0)
250x250

티스토리

hELLO · Designed By 정상우.
greenhelix

greenhelix

#07_CS Arcade Kotlin >> Almost Increasing Sequence
Algorithm/Kotlin

#07_CS Arcade Kotlin >> Almost Increasing Sequence

2020. 12. 30. 23:00

Code Signal -Arcade Kotlin

코드시그널 아케이드 코틀린 풀이

코드시그널 아케이드 Intro 자바 풀이가 끝나고 코틀린 풀이를 올리게 되었습니다. 

질문과 틀린부분은 댓글로 남겨주세요. 🎅

글을 참고 하셨다면, 공감, 하트 한번 눌러주시고 가주시면 감사하겠습니다. 🧡💚💘


증가하는 수열을 나타내보라는 것이다. 
단 조건이 있는데, 만약 한 개의 수가 그 시퀀스를 막는다면,  그 한 개의 수를 제거하는 조건으로

시퀀스가 유지되는지 확인하라는 알고리즘.

 

풀이.

//코틀린
fun almostIncreasingSequence(sequence: MutableList<Int>): Boolean {
    var a =  -1
    var b = 0
    for(i in 1 until sequence.size)
        if(sequence[i-1] >= sequence[i]){
            a = i
            b++
        }
        if(b>1){
            return false
        }
        if(b== 0){
            return true
        }
        if(a == sequence.size -1 || a == 1){
            return true
        }
        if(sequence[a-1] < sequence[a+1]){
            return true
        }
        if(sequence[a-2] < sequence[a]){
            return true
        }
    
    return false
}

 

단순하게 수열을 검사한다. b의 값을 통해서 이 수열이 시퀀스가 유지되는지 안되는지 확인하고 리턴값을 할당해주는 알고리즘이다. 

if문을 통해서 진행하며 시간 복잡도가 적다. 

 

 

//자바
boolean almostIncreasingSequence(int[] sequence){
   
    // sequence 배열의 길이 
    int length = sequence.length;
    System.out.println(length);
    
    //공식에 필요한 변수선언 하나는 -1 하나는 0으로 지정.
    int a = -1; 
    int b = 0; 
    
    for(int i = 1; i<length; i++)
        
        //첫번째 요소가 다음 요소보다 크다.
        //즉, 규칙적이게 커지는 수가 아니라는 뜻이다. 
        //그러면 a에 그 두번째요소 인덱스를 넣어준다.
        //그리고 b는 이 가정문에 걸릴시 +1씩 더해준다. 
        if(sequence[i-1] >= sequence[i]){
            a = i; 
            b++; 
        }
    
        //만약 b가 1보다 커질경우에는 false를 바로 리턴한다. 
        //b가 1초과되는경우는 위의 첫번째 if문이 두번이상 반복되었다는 뜻.
        //볼것도 없이 하나의 숫자를 빼도 순서대로 시퀀스를 못마춘다는 뜻이므로
        //false를 리턴 시킨다. 
        if(b > 1){
            
            System.out.println("one 앞에수가 큰경우나 같은경우 2번이상 나옴");
                
        return false;
        }  
    
    
        //만약 b가 0이라면 true를 바로 리턴해준다. 
        //첫번째 if문이 가동안되었다는 뜻이므로 앞의 수가 뒤에수보다 작다. 
        //그러므로 시퀀스가 유지되므로 true를 리턴해주는 것이다. 
        if(b == 0){
            
            System.out.println("two 안건드려도 시퀀스 유지 잘됨.");
            
            return true;
        } 
    
        //한개의 수를 제거한다면 시퀀스가 성립된다. 
        if(a == length -1 || a == 1){
            
            System.out.println("a= "+a);
           
            System.out.println("three 한개의 수를 빼면 성립됨.");
            
            return true;
        }  
    
    
        if(sequence[a-1] < sequence[a+1]){
            
            System.out.println("a= "+a);
            
            System.out.println("four 양쪽 중하나 잘라내면 시퀀스 성립됨.");
            
            return true;
        }  
    
    
        if(sequence[a-2] < sequence[a]){
            
            System.out.println("a= "+a);
            
            System.out.println("five 공갈빵 하나 빼면 시퀀스 성립됨.");
            
            return true;
        }  

    System.out.println("a= "+a + "  이상한 경우");
    return false; 
}

 

 

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

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

#08_CS Arcade Kotlin >> Matrix Elements Sum  (0) 2020.12.31
#06_CS Arcade Kotlin >> Make Array Consecutive 2  (0) 2020.12.29
#04_CS Arcade Kotlin >> Adjacent Elements Product  (0) 2020.12.23
    'Algorithm/Kotlin' 카테고리의 다른 글
    • [프로그래머스 뿌셔뿌셔] :Kotlin: 크레인 인형 뽑기 게임
    • #08_CS Arcade Kotlin >> Matrix Elements Sum
    • #06_CS Arcade Kotlin >> Make Array Consecutive 2
    • #04_CS Arcade Kotlin >> Adjacent Elements Product
    greenhelix
    greenhelix
    개발에 관한 것들과 개인적인 것을 담는 블로그

    티스토리툴바