λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Algorithm/μΈν”„λŸ°(inflearn)

[ μžλ°”μŠ€ν¬λ¦½νŠΈ(JavaScript) ] 18 - λ³΄μ΄λŠ” 학생

by YWTechIT 2021. 8. 13.
728x90

πŸ“ 18 - λ³΄μ΄λŠ” 학생

이 문제λ₯Ό 보자마자 boj2493 - 탑과 μœ μ‚¬ν•˜λ‹€λŠ” 생각이 λ“€μ—ˆλ‹€. (비둝 python으둜 ν’€κΈ΄ν–ˆμ§€λ§Œ..) λ³΄μ΄λŠ” 학생 λ¬Έμ œλŠ” 그닀지 어렡지 μ•Šμ•˜λ‹€. λŒ€μ‹  μ£Όμ˜ν•  점은 이전 index의 값을 μ•Œκ³ μžˆμ–΄μ•Ό λŒ€μ†Œκ΄€κ³„λ₯Ό μ•Œ 수 μžˆλŠ”λ°, 제일 첫번째 학생은 비ꡐ λŒ€μƒμ΄ μ—†κΈ° λ•Œλ¬Έμ— stack에 λ„£κ³  μ‹œμž‘ν•˜λ©΄ λœλ‹€.

 

κ°•μ˜μ˜μƒμ—μ„œλŠ” 값을 λˆ„μ ν•˜λŠ” λŒ€μ‹  ν• λ‹Ήν•˜λŠ”κ²ƒμœΌλ‘œ ν’€μ—ˆλŠ”λ°, ꡳ이 빈 배열에 push ν•˜μ§€ μ•Šκ³ λ„ 값을 ꡬ할 수 μžˆλŠ”κ²ƒμ΄ μ’‹μ•˜λ‹€.

console.log(solution([130, 135, 148, 140, 145, 150, 150, 153]));

// λ‚˜μ˜ μ½”λ“œ
function solution(students) {
  let stack = [];
  let cnt = 1;

  stack.push(students[0]);

  for (let i = 1; i < students.length; i++) {
    if (students[i] > stack[stack.length - 1]) {
      stack.push(students[i]);
      cnt += 1;
    }
  }
  return cnt;
}

// κ°•μ˜
function solution(students) {
  let maxHeight = students[0];
  let cnt = 1;

  for (let i = 1; i < students.length; i++) {
    if (students[i] > maxHeight) {
      maxHeight = students[i];
      cnt += 1;
    }
  }
  return cnt;
}
λ°˜μ‘ν˜•

λŒ“κΈ€