보이는 학생
선생님이 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 |