앞 수들 보다 큰 수만 구하기


:raising_hand: 알고리즘 공부 간 기록이 필요한 문제들에 대한 정리를 기록하는 포스트 입니다.


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 로도 풀어보았다.