자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다.
📋 문제
선생님이 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값이 갱신되었다는 뜻은 앞선 값들보다 큰 값이 새로 들어왔다는 뜻과 같다.
즉, 이 경우에는 선생님이 그 학생을 볼 수 있다.
'Algorithm > JavaScript' 카테고리의 다른 글
[배열탐색] 점수계산 (0) | 2021.12.09 |
---|---|
[배열탐색] 가위바위보 (0) | 2021.12.09 |
[배열탐색] 큰 수 출력하기 (0) | 2021.12.09 |
[프로그래머스] 모의고사 (0) | 2021.12.06 |
[프로그래머스] 로또의 최고 순위와 최저 순위 (0) | 2021.12.06 |
댓글