article thumbnail image
Published 2022. 6. 2. 00:47
보이는 학생
선생님이 N(1<=N<=1000)명의 학생을 일렬로 세웠습니다. 일렬로 서 있는 학생의 키가 앞에
서부터 순서대로 주어질 때, 맨 앞에 서 있는 선생님이 볼 수 있는 학생의 수를 구하는 프로그
램을 작성하세요. (앞에 서 있는 사람들보다 크면 보이고, 작거나 같으면 보이지 않습니다.)
▣ 입력설명
첫 줄에 정수 N이 입력된다. 그 다음줄에 N명의 학생의 키가 앞에서부터 순서대로 주어진다.
▣ 출력설명
선생님이 볼 수 있는 최대학생수를 출력한다.
▣ 입력예제 1
8
130 135 148 140 145 150 150 153
▣ 출력예제 1
5
 
 
1. max라는 변수를 만들고 초기에 비교할 초기값을 세팅해준다.
2. 조건을 넣어서 max보다 arr[i] 가 클 경우에 카운터를 1 올려주고 
answer에 저장한다.
 

📌작성코드
<html>

<head>
  <meta charset="UTF-8">
  <title>출력결과</title>
</head>

<body>
  <script>
    function solution(arr) {
      let answer = 1; 
      let max = arr[0]; //초기 비교 대상
      for (let i = 0; i < arr.length; i++) {
        if (max < arr[i]) {
          answer = answer + 1
          max = arr[i]
        }
      return answer;
    }
    let arr = [130, 135, 148, 140, 145, 150, 150, 153];
    console.log(solution(arr));
  </script>
</body>

</html>

 

문제를 이해해보자.

내가 선생님이고, 학생들이 내앞에 한줄로 줄을 서있다.

맨 앞에 서있는 학생의 키가 만약에 130 이라면 두번째 학생의 키가 133일때 두번째 학생의 키가 더 크면

카운터를 1 올려주고 작으면 카운터를 올리지 않는다.

 

다시 코드로 돌아가서 처음에 비교대상을 만들어준다.

max라는 변수에 arr[0]번째 즉 첫번째를 초기값으로 설정해주고, 

max값과 arr[i]를 비교하여 조건이 참이면 answer(결과)에 카운터 1을 저장한다.

 

카운터 값인 answer에 초기세팅을 1로 넣어준 이유는?

선생님 시선에서는 맨 앞의 학생은 당연하게 보일것이다.

그래서 1을 기본값을 넣어주었다.

'알고리즘' 카테고리의 다른 글

[알고리즘 문제] 2-4번  (0) 2022.06.02
[알고리즘 문제] 2-3번  (0) 2022.06.02
[알고리즘 문제] 2-1번  (0) 2022.05.31
[알고리즘 문제] 17번  (0) 2022.05.31
[알고리즘 문제] 16번  (0) 2022.05.31
복사했습니다!