[알고리즘] 2차원 탐색 - 보이는 학생
보이는 학생
선생님이 N(1<=N<=1000)명의 학생을 일렬로 세웠습니다. 일렬로 서 있는 학생의 키가 앞에서부터 순서대로 주어질 때, 맨 앞에 서 있는 선생님이 볼 수 있는 학생의 수를 구하는 프로그램을 작성하세요. (앞에 서 있는 사람들보다 크면 보이고, 작거나 같으면 보이지 않습니다.)
▣ 입력설명
첫 줄에 정수 N이 입력된다. 그 다음줄에 N명의 학생의 키가 앞에서부터 순서대로 주어진다.
▣ 출력설명
선생님이 볼 수 있는 최대학생수를 출력한다.
▣ 입력예제 1
8
130 135 148 140 145 150 150 153
▣ 출력예제 1
5
내 풀이
function solution(arr) {
let answer = [];
let max = 0;
arr.reduce((acc, cur) => {
max < acc ? (max = acc) : null;
cur > max ? answer.push(cur) : null;
return cur;
}, 0);
return answer.length;
}
큰 수 출력하는 문제와 결이 비슷했다. 다른 점은 앞에 키카 큰 친구가 있으면 뒤에 친구들은 이 친구보다 키가 작다면 바로 앞 친구가 나보다 키다 작더라도 보이지 않는다는 점이다. 따라서 max를 따로 뒀다. reduce
함수를 사용하고 콜백 함수 첫줄에서 max 값을 acc 값과 비교하여 설정하였다. 이후에는 조건에 맞는 값들을 푸쉬하였다.
강사님 풀이
function solution(arr){
let answer=1, max=arr[0];
for(let i=1; i<arr.length; i++){
if(arr[i]>max){
answer++;
max=arr[i];
}
}
return answer;
}
Author And Source
이 문제에 관하여([알고리즘] 2차원 탐색 - 보이는 학생), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@shinwonse/알고리즘-2차원-탐색-보이는-학생저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)