본문 바로가기

Algorithm/기타(기업등)

[codingbat/java] has271

728x90

구분

  • Warmup 2 

 

문제

본격 영어문제가 해석이 잘안되어서 못풀겠는 문제

 

https://codingbat.com/prob/p167430

 

CodingBat Java Warmup-2 has271

Given an array of ints, return true if it contains a 2, 7, 1 pattern: a value, followed by the value plus 5, followed by the value minus 1. Additionally the 271 counts even if the "1" differs by 2 or less from the correct value.has271([1, 2, 7, 1]) → tru

codingbat.com

 

풀이

풀이랄 것은 없지만, 가끔 codingbat은 문제가 무엇을 원하는지 잘모르겠다.

 

문제 해석

주어진 int뱁열에서, 만약 2, 7, 1 패턴을 가졌으면, true를 return해라

*2, 7, 1 패턴 : 수 / 수 +  5 / 수 - 1 의 패턴을 가진 부분 배열이며, 2 , 7(2 + 5), 1 ( 2  - 1 )

그런데, 마지막 숫자("1"부분) 는 ± 2 범위 내도 허용하라.

ex) 시작 숫자가 2인 경우 :  2 7 1 / 2 7 -1 / 2 7 0 / 2 7 3 / 2 7 2 -> true 

 

 

 

코드

    public static boolean has271(int[] nums){

        int len = nums.length;

        if(len<3) return false;//길이 3 이하면 검사도 불가능

        for(int i=0; i<len-2; i++){//마지막 2칸을 남겨둬야 3개 검사가능
            int number = nums[i];
            if(number+5 == nums[i+1]){//2번쨰 수는 1번쨰 수 +5
                if(nums[i+2]<= number + 1 && nums[i+2]>= number-3) return true;//3번째 수는 1번째 수 -1 한 값에서 +-2
            }
        }
        return false;//다 도는 동안 없었으면 false
    }

 

 

Warmup2 다했다~

728x90

'Algorithm > 기타(기업등)' 카테고리의 다른 글

[CodingBat/java] canBalance  (0) 2021.10.28
[CodingBat/java] mirrorEnds  (0) 2021.10.14
[CodingBat/java] sameEnds  (0) 2021.10.14
[CodingBat/java] gHappy  (0) 2021.10.11
[CodingBat/java] countTriple  (0) 2021.10.11