📌강의 정리
앞에 사람보다 크면 보이고, 작거나 같으면 안보인다.
배열만 솔루션으로 받으면 된다.
i를 정해서 i가 앞에보다 크면 count하면 되는데
이걸 이중포문 쓰면 시간 복잡도가 O(N^2)가 된다. 그러므로 포문 하나만 써야한다.
max값을 i일때 i앞에서의 제일 큰사람으로 정한다.
max값은 새롭게 보일때마다 카운팅해주면서 다시 정해주면 된다.
처음은 무조건 보이니까 카운트 1로 시작하고 max값은 arr[0]으로 시작한다.
반복문도 1부터 시작한다.
📌느낀점
나와 다른점은 처음에 카운팅을 하나해주고 max값을 arr[0]으로 시작한다는 점이다.
그래서 반복문이 1부터 시작하는데 아직은 나와 강사님 중 어떤게 더 효율적인지
시간복잡도를 잘 몰라서 모르겠다.
나중에 시간복잡도를 알아봐야 한다.
//나의 코드
<html>
<head>
<meta charset="UTF-8">
<title>출력결과</title>
</head>
<body>
<script>
function solution(arr){
let answer = 0, max = 0;
for(x of arr){
if(x > max){
max = x;
answer++;
}
}
return answer;
}
let arr=[130, 135, 148, 140, 145, 150, 150, 153];
console.log(solution(arr));
</script>
</body>
</html>
//강사님 코드
<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>
'JS 알고리즘 문제풀이 > 섹션 2. 1, 2차원 배열 탐색' 카테고리의 다른 글
6.격자판 최대합 (0) | 2022.01.13 |
---|---|
5.등수구하기 (0) | 2022.01.12 |
4.점수계산 (0) | 2022.01.12 |
3.가위바위보 (0) | 2022.01.12 |
1.큰 수 출력하기 (0) | 2022.01.12 |