앞 수들 보다 큰 수만 구하기
알고리즘 공부 간 기록이 필요한 문제들에 대한 정리를 기록하는 포스트 입니다.
1. 문제 요건
입력값으로 N X N 행의 배열이 주어지고 해당 배열은 사람의 키를 의미한다.
맨앞에서 볼 때 보이는 사람일경우 즉, 자신의 앞 모든사람보다 키가 큰 사람을 구하라
2. 코드
- 기본 솔루션
function solution(arr) {
let count = 1
let high = arr[0]
for(let i=1; i < arr.length; i++) {
if(arr[i] > high) {
high = arr[i]
count++
}
}
return count
}
- reduce 사용
// reduce 로 한번 풀어보았다.
function solution2(arr) {
let temp = [arr[0]];
let answer = arr.reduce((high, v) => {
console.log(v, high)
if(v > high) {
temp.push(v)
high = v
return high
} else {
return high
}
}, arr[0])
return temp.length
}
3. 결과정리
간단하게 반복문을 통해 가장 큰값을 가져가고 그보다 큰 사람이 나오게 되면 카운트를 올리면 된다.
이곳저곳 javascript 내장함수를 활용해서 몸에 사용법을 좀 익힐겸 reduce 로도 풀어보았다.