[algorithm] 보이는 학생

Ho-eng·2023년 4월 15일
0

❓ 보이는 학생


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

  • 입력설명

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

    선생님이 볼 수 있는 최대학생수를 출력한다.
  • 입력예제 1

    3
  • 출력예제 1

    5

❗ 문제 풀이

내 풀이

<html>
  <head>
    <meta charset="UTF-8" />
    <title>출력결과</title>
  </head>
  <body>
    <script>
      function solution(s) {
        let answer = []

        for (let i = 0; i < s.length; i++) {
          if (s[i - 1] < s[i]) answer.push(s[i])
        }

        return answer.length
      }
      let arr = [130, 135, 148, 140, 145, 150, 150, 153]
      console.log(solution(arr))
    </script>
  </body>
</html>
  1. answer이란 변수를 하나 선언하고 빈 배열을 할당한다.
  2. 반복문을 통해 배열순환을 돌면서,
    n-1 와 n을 비교해서, 조건을 만족한다면 answer에 담는다
  3. answer을 리턴하면 끗.

정답 소스

<html>
    <head>
        <meta charset="UTF-8">
        <title>출력결과</title>
    </head>
    <body>
        <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>
    </body>
</html>
profile
매일 '어제의 나와 오늘의 나는 무엇이 다를까?'를 고민하는 김호엥입니다.

0개의 댓글