SG의 개발 공부로그

머쓱이보다 키 큰 사람 [프로그래머스 코딩테스트 입문] 본문

CodingTest

머쓱이보다 키 큰 사람 [프로그래머스 코딩테스트 입문]

DebeloperSG 2023. 1. 15. 23:22
728x90

머쓱이보다 키 큰 사람

 

문제 설명

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

 

 

제한사항

  • 1 ≤ array의 길이 ≤ 100
  • 1 ≤ height ≤ 200
  • 1 ≤ array의 원소 ≤ 200

 

 

입출력 예

array num2 result
[149,180,192,170] 167 3
[180,120,140] 190 0

 

 

입출력 예 설명

입출력 예 #1

  • 149, 180, 192, 170 중 머쓱이보다 키가 큰 사람은 180, 192, 170으로 세 명입니다.

 

입출력 예 #2

  • 180, 120, 140 중 190보다 큰 수는 없으므로 0명입니다.

 

풀이

for반복문을 돌려서 머쓱이의 키 (height) 보다 큰 수 일때마다 answer값을 증감연산자를 사용해서 1씩 증가시킨다

function solution (array,height){
    let answer = 0;
    for(i = 0; i < array.length; i++){
        if(array[i] > height){
            answer++
        }
    }
    return answer
}

 

다른사람 풀이

map함수가 뱉는 배열은 사용(리턴)하진 않고 map함수를 활용해서 조건에 맞으면 answer를 증가시켜주도록 짠 코드이다.

친구들의 키를 담은 배열(array)을 map함수를 돌려서 머쓱이의 키(height)보다 큰수면 result++ 되도록 했다.

 

여기서 논리연산자를 활용했는데

&& 연산자는 먼저 왼쪽의 표현식을 처리하며, 값이 truthy라면 오른쪽의 표현식을 처리한다

그래서 머쓱이보다 키가 크면 true 이므로 오른쪽에 있던 result++ 가 실행된다.

 

반대로 연산자 ||는 먼저 왼쪽의 표현식을 처리하며 매개변수가 truthy라면 오른쪽의 표현식을 처리하지 않고

해당 값을 즉시 반환한다.

만약 매개변수가 falsy라면 오른쪽의 표현식을 처리한다.

function solution(array, height) {
    let result = 0;
    array.map((arr) => height < arr && result++);

    return result;
}

 

728x90