본문 바로가기
Algorithm/JavaScript

[배열탐색] 보이는 학생

by _sweep 2021. 12. 9.

 

자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다.

 

 

 

 

📋 문제

선생님이 N(1 <= N <= 1000)명의 학생을 일렬로 세웠다.

일렬로 서 있는 학생의 키가 앞에서부터 순서대로 주어질 때, 학생들의 맨 앞에 서있는 선생님이 볼 수 있는 학생의 수를 구하고 출력한다.

이때 앞에 서 있는 사람들보다 크면 보이고 작거나 같으면 보이지 않는다.

 

 

👉 입력

N명의 학생의 키가 앞에서부터 순서대로 입력된다.

 

 

👈 출력

선생님이 최대로 볼 수 있는 학생의 수를 출력한다.

 

 

📝 풀이

 

function solution(arr) {
    let answer = 0, max = 0;
    for (const a of arr) {
        if (a > max) {
            max = a;
            answer++;
        }
    }
    return answer;
}

let arr = [130, 135, 148, 140, 145, 150, 150, 153];
console.log(solution(arr));

 

for of 문을 이용해 arr의 요소들을 순회한다.

순회하며 값을 비교해 max값을 갱신해 나간다.

이때 max값은 Number.MIN_SAFE_INTEGER로 주어도 되지만 어차피 입력으로 들어오는 것은 키의 값으로 0보다 큰 수가 들어올 것이 분명하니 그냥 0으로 초기화해도 무방하다.

max값이 갱신되었다는 뜻은 앞선 값들보다 큰 값이 새로 들어왔다는 뜻과 같다.

즉, 이 경우에는 선생님이 그 학생을 볼 수 있다.

 

 

 

 

 

댓글