다른분들의 코드를 참고했습니다
1. 주어진 배열의 양쪽 끝은 항상 남길 수 있다.
2. 인덱스 1번 ~ a.length-1번까지 탐색을 합니다.
2-1. i번째 요소가 left보다 작다면 left를 i번째 요소로 바꾸고 answer+1를 해준다.
2-2 a.length-1-i번째 요소가 right보다 작다면 right를 a.length-1-i번째 요소로 바꾸고 answer+1를 해준다.
2-3 주의, left와 right가 같다면 중복이 되었다는 의미이기 때문에 answer-1를 해주고 반복문을 종료한다.
class Solution {
public int solution(int[] a) {
int answer = 2;
int left = a[0];
int right = a[a.length-1];
int rightIndex = a.length-1;
for(int i=1; i<a.length-1; i++){
if(a[i] < left){
left = a[i];
answer++;
}
if(a[rightIndex-i] < right){
right = a[rightIndex-i];
answer++;
}
if(left == right){
answer--;
break;
}
}
return answer;
}
}