https://school.programmers.co.kr/learn/courses/30/lessons/120585
for문으로 배열의 요소를 반복해서 풀 수도 있는데, 나는 그렇게 풀고 싶지 않았다. 배열을 정렬한 후 index값을 고려해서 하고 싶었다.
import java.util.*;
class Solution {
public int solution(int[] array, int height) {
Arrays.sort(array); //오름차순 정렬
int idx = 0;
for(int i=array.length-1; i>=0; i--){ //맨 끝부터 탐색
if(array[i] <= height){ //작아지는 시점에 탈출
idx = i;
break;
}
}
int answer = array.length - idx - 1;
return answer;
}
}
index의 초기값을 0으로 설정해 주었기 때문에 반례가 발생하는 문제였다. index값을 -1로 초기화 해 주면 문제가 해결된다.
import java.util.*;
class Solution {
public int solution(int[] array, int height) {
Arrays.sort(array); //오름차순 정렬
int idx = -1;
for(int i=array.length-1; i>=0; i--){ //맨 끝부터 탐색
if(array[i] <= height){ //작아지는 시점에 탈출
idx = i;
break;
}
}
int answer = array.length - idx - 1;
return answer;
}
}