본문 바로가기
프론트엔드로 가는 길/프로그래머스

11. 머쓱이보다 키 큰 사람

by woody-j 2022. 11. 8.

※문제설명

머쓱이는 학교에서 키 순으로 줄을 설 때 몇 번째로 서야 하는지 궁금해졌습니다.
머쓱이네 반 친구들의 키가 담긴 정수 배열 array와 머쓱이의 키 height가 매개변수로 주어질 때,
머쓱이보다 키 큰 사람 수를 return 하도록 solution 함수를 완성해보세요.

 

My Solution

function solution(array, height) {
return (array.filter(array=>array>height)).length
}

 

Array.prototype.filter()

filter() 메서드는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환합니다.

 

filter 구문

arr.filter(callback(element, index, array), thisArg)

 

매개변수

callback : 각 요소를 시험할 함수. true를 반환하면 요소를 유지하고, false를 반환하면 버립니다.

다음 세 가지 매개변수를 받습니다.

1. element : 처리할 현재 요소.

2. index  : 처리할 현재 요소의 인덱스.

3. array : filter를 호출한 배열.

 

thisArg : callback을 실행할 때 this로 사용하는 값.

 

부족한 점 처음에 저 문제를 접했을 때 어떤 식으로 접근해야하는 지 몰라 어려움을 겪었다. 
코딩 마스터 님께 키워드를 얻었고, 얻었지만 쉽게 생각하지 못해 다음날로 문제를 미뤘다.
가벼운 마음으로 다시 코드를 처음부터 천천히 필터와 접목시켜 문득 편하게 쓴 코드가 통과되었다.
어제의 나와 오늘의 나를 생각해보면 어제는 너무 어렵게 생각해보다보니 쉽게 통과를 하지 못했던 것 같다.
항상 다양하고 새로운 방식으로 접하려고 하다보니 조금 스스로 생각이 깊어졌던 것 같다!!
개선 방안 내 수준을 고려하면서 코드를 작성할 필요가 있다. 지금은 매일 코딩테스트를 하면서 매일 새로운 것을 알아가는 과정이니까 성급해하지말고 내가 알고 있는 선에서 개념들을 익히면서 문제를 통과하려고 노력하자.

 


 

Different Approach

function solution(array, height) {
    var answer = 0;
    for(var i in array){
        var h = array[i];
        if(height < h){
            answer++;
        }
    }
    return answer;
}

 for in : 객체의 프로퍼티 키 열거 전용

 

✔️ 객체의 열거 가능한 '속성들'을 순회할 수 있도록 해줌

✔️ 객체의 key값에 접근 가능, value값에는 직접 접근 불가

✔️ 모든 객체에서 사용 가능

 

 

 

 

참고 블로그 : https://aljjabaegi.tistory.com/312

 

javascript filter 함수에 대해 알아보자 자바스크립트 filter 함수

javascript filter 함수에 대해 알아보자 자바스크립트 filter 함수 지난 포스팅에서 자바스크립트 고차함수(High-Order_Function) 중 reduce에 대해 알아보았습니다. Link : javascript reduce 함수에 대해 알아보자

aljjabaegi.tistory.com

https://joooing.tistory.com/entry/Iteration2-for-in%EB%AC%B8-for-of%EB%AC%B8

 

Iteration (2) for in문, for of문의 차이점

for ...in문과 for ...of 문은 언뜻 보면 둘다 객체 길이만큼 순회를 반복하기 때문에 비슷해보인다. 그래서 자꾸 사용할 때마다 헷갈리기도 해서 다시 한번 제대로 정리를 해두려고 한다. for …in 문

joooing.tistory.com