<보이는 학생>
: 선생님이 N명의 학생을 일렬로 세웠다. 일렬로 서 있는 학생의 키가 앞에서부터 순서대로 주어질 때, 맨 앞에 서 있는 선생님이 볼 수 있는 학생의 수를 구하는 프로그램을 작성한다. (앞에 서 있는 사람들보다 크면 보이고, 작거나 같으면 보이지 않는다.)
- 맨 앞에 있는 학생은 무조건 보일 수 밖에 없다. 그러므로 answer을 1로 초기화해준다.
- 바로 앞에 있는 학생과 비교하는 게 아니고, 내 앞에 모든 학생과 비교해야 하므로, max를 선언하여서 arr[0]으로 초기화를 해준다.
- if문의 조건을, 현재 값이 최댓값보다 크면, answer ++; 를 해주고 최댓값을 현재값으로 초기화해준다.
<script> 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; } let arr=[130, 135, 148, 140, 145, 150, 150, 153]; console.log(solution(arr)); </script>
처음에 앞에 모든 사람들이 아닌, 맨 앞사람과만 비교하는 코드로 짰었다. 문제를 이해는 했으나 잘못짬.. 그래서 결과가 이상하게 나왔는데, 계속 하다보니 틀린 부분을 알아채서 수정했다. 그랬더니 맞았다. 굿. 쉬운 문제였다.