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개의 댓글

관련 채용 정보