반응형
❓ 문제: 원소들의 곱과 합
정수가 담긴 리스트 num_list가 주어질 때, 모든 원소들의 곱이 모든 원소들의 합의 제곱보다 작으면
1을 크면 0을 return하도록 solution 함수를 완성해주세요.
📝 문제 풀이
num_list 배열의 원소들의 합의 제곱값을 ** 로 할지 Math.pow()로 할지 고민하다가
메서드보단 단순계산이 더 빠르겠다싶어서 변수에 넣어서 값을 리턴했다.
function solution(num_list) {
let sum = num_list.reduce((a, b) => a + b);
const multiple = num_list.reduce((a, b) => a * b);
return multiple < sum * sum ? 1 : 0;
}
지금 생각해보면 변수에 넣으면 어차피 저장공간을 차지하기 때문에 return 문에서 바로 **2해줬으면 됐을텐데...
그래도 더 나은 방법을 찾는 이런 과정이 재밌다.
참고할만한 다른 풀이를 구경해봤다.
const solution=n=>+(n.reduce((a,v)=>a+v)**2>n.reduce((a,v)=>a*v))
아니 근데 삼항연산자로 1이나 0을 리턴하지 않는데 어떻게 통과된걸까 살펴보다가
불리언값을 숫자로 변환시켜서 반환하고 있다.
진짜 천재.....리스펙....
위 코드를 삼항연산자로 바꾸면 속도에 차이가 있는지 궁금해서 테스트해봤다.
근소하지만 숫자로 변환하는게 더 빠르다니,
그냥 조건문보다는 삼항연산자가 빨라서 애용했는데 앞으로 풀이에 참고해야겠다.
최근 프로그래머스에 새로운 레벨 0 문제가 생겨서 즐겁게 풀었는데
덕분에 등수도 많이 올랐다.
그래도 레벨 0은 아무래도 단순한 문제가 많다보니
실력보단 트릭이 쌓이는 느낌이다.
이제 다른 레벨로 넘어가봐야겠다.
모두 즐코하세요-!
반응형
'코딩 생활 > 코딩테스트' 카테고리의 다른 글
[프로그래머스 | JS] 레벨 0. 세 개의 구분자 (feat. [], {}은 true다) (0) | 2023.04.26 |
---|---|
[프로그래머스 | JS] 레벨 0. 가까운 1 찾기 (feat. mdn 사이트를 잘 살피자) (0) | 2023.04.25 |
[프로그래머스 | JS] 레벨 1. 예산 (feat. 내부적인 오류....) (0) | 2023.04.14 |
[프로그래머스 | JS] 레벨 0. 특이한 정렬 (feat. sort()) (0) | 2023.04.14 |
[프로그래머스 | JS] 레벨 0. 중복된 문자 제거 (feat. Set 객체) (0) | 2023.04.12 |
댓글