2021/12/23) 2. 보이는 학생 [1,2차원 탐색]

굥굥이·2021년 12월 23일
0
post-thumbnail

1. 문제

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

2. 해결 방법

  1. 맨 앞에 있는 학생은 무조건 보일 수 밖에 없다. 그러므로 answer을 1로 초기화해준다.
  2. 바로 앞에 있는 학생과 비교하는 게 아니고, 내 앞에 모든 학생과 비교해야 하므로, max를 선언하여서 arr[0]으로 초기화를 해준다.
  3. if문의 조건을, 현재 값이 최댓값보다 크면, answer ++; 를 해주고 최댓값을 현재값으로 초기화해준다.

3. 정답

        <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>

4. 내 코드와 비교 그리고 칭찬

처음에 앞에 모든 사람들이 아닌, 맨 앞사람과만 비교하는 코드로 짰었다. 문제를 이해는 했으나 잘못짬.. 그래서 결과가 이상하게 나왔는데, 계속 하다보니 틀린 부분을 알아채서 수정했다. 그랬더니 맞았다. 굿. 쉬운 문제였다.

profile
아자아자 파이띵굥!

0개의 댓글