강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

h승현님의 프로필 이미지
h승현

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

2. 보이는 학생

선생님 이 방법으로 풀어봤는데 왜이게 되는건지 모르겠어요

작성

·

229

0

function solution(s){

  const arr = [];

  arr.push(s[0])

  for(let i=0; i<s.length; i++){

    if(arr[arr.length-1]<s[i]){

      arr.push(s[i])

    }

  }

  return arr

}

 

 

예전에 써먹었던 방법으로 우연히 한건데

arr[arr.length-1] 이게 배열의 맨 끝을 나타내는건가요?

퀴즈

배열을 순회하며 이전에 나온 모든 수보다 큰 수들의 개수를 효율적으로 세는 방법은 무엇일까요?

배열을 정렬한 후 앞에서부터 순서대로 센다.

현재까지 나타난 수들 중 최대값을 기록하며 순회한다.

각 수를 배열의 모든 다른 수와 비교하여 개수를 센다.

배열의 첫 번째 수만 확인하여 결정한다.

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

arr[arr.length-1] 의 값이 앞에 있는 학생 중 가장 큰 학생이기 때문에 위 코드도 답이 나오는 코드입니다.

arr[arr.length-1] 의 값은 배열의 맨 마지막 값입니다.

h승현님의 프로필 이미지
h승현

작성한 질문수

질문하기