Algorithm JS - 보이는 학생

jiny·2022년 9월 27일
0

JavaScript Algorithm

목록 보기
15/23
post-thumbnail

문제

선생님이 N(1<=N<=1000)명의 학생을 일렬로 세웠습니다. 일렬로 서 있는 학생의 키가 앞에 서부터 순서대로 주어질 때, 맨 앞에 서 있는 선생님이 볼 수 있는 학생의 수를 구하는 프로그 램을 작성하세요. (앞에 서 있는 사람들보다 크면 보이고, 작거나 같으면 보이지 않습니다.)

입력 설명

첫 줄에 정수 N이 입력된다. 그 다음줄에 N명의 학생의 키가 앞에서부터 순서대로 주어진다.

출력 설명

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

알고리즘

  • 카운팅을 위한 변수 생성
  • 첫 번째 사람을 가장 키 큰 사람으로 잡음
  • 배열 순회(1부터 순회) 하며 count가 0일 경우 1 증가
  • maxTallPerson 보다 i번째 person이 클 경우 count 증가
  • maxTallPerson을 i번째 person으로 변경
  • count 리턴

소스 코드

let array = require("fs")
  .readFileSync(__dirname + "/input.txt")
  .toString()
  .split("\n")
  .slice(1)
  .join()
  .split(" ")
  .map((i) => Number(i));

function searchStudent(arr) {
  let count = 0;
  let maxTallPerson = arr[0];
  for (let i = 1; i < arr.length; i++) {
    if (count === 0) count++;
    if (maxTallPerson < arr[i]) {
      count++;
      maxTallPerson = arr[i];
    }
  }
  return count;
}

console.log(searchStudent(array));

0개의 댓글