본문 바로가기

코딩테스트/Coding Bat

[코딩뱃] [자바] Warmup - 2단계 : array123 문제

728x90
728x90

https://codingbat.com/prob/p136041

 

CodingBat Java Warmup-2 array123

Given an array of ints, return true if the sequence of numbers 1, 2, 3 appears in the array somewhere.array123([1, 1, 2, 3, 1]) → truearray123([1, 1, 2, 4, 1]) → falsearray123([1, 1, 2, 1, 2, 3]) → trueGo...Save, Compile, Run (ctrl-enter)Show Solutio

codingbat.com



= 문제 번역 =

int 배열이 주어지면 배열의 요소에서 1, 2, 3이라는 세트가 배열 어딘가에 나타나면 true를 반환합니다.

 

= 문제푸는 팁 =

i와 i+1과 i+2가 1,2,3일 때 true가 나오면 된다.

내가 아직 제일 부족한 부분은 nums.length-2로 돌려야한다는 것

왜냐면 i가 i+1, i+2까지 돌아야하는데 length까지 돌면 length+2까지 i를 가져오는데 이미 그 index에 값이 없기 떄문이다.

 

= 해설 =

< 1 >
public boolean array123(int[] nums) {
  // Note: iterate < length-2, so can use i+1 and i+2 in the loop
  for (int i=0; i < (nums.length-2); i++) {
    if (nums[i]==1 && nums[i+1]==2 && nums[i+2]==3) return true;
  }
  return false;
}

728x90