728x90
문제 설명
문제 풀이 방법
- 이 문제는 이해하면 매우 간단한 문제이다.
- 하나의 배열에서 가장 작은 수와 다른 배열에서 가장 큰 수를 곱해주며 더해준 값이 답이된다.
- 배열 원본 자체를 정렬해주는 sort메서드를 이용해 정렬해 주고,
reduce 메서드를 이용해 한 배열의 요소별로 계산을 해주자
내가 작성한 코드
const solution = (A,B) =>{
let answer = 0
A.sort((a, b) => a - b);
B.sort((a, b) => b - a);
return A.reduce((sum, e, idx) => {
return sum + e*B[idx]
}, 0);
}
런타임 에러난 코드
정확성은 모두 통과했지만 효율성은 모두 통과하지 못했다.
이 문제의 의도가 for문을 이용한 반복은 의도하지 않은것 같다.
const solution = (A,B) =>{
let answer = 0;
const len = A.length;
const func = (n1, n2) => {
const i1 = A.indexOf(n1);
const i2 = B.indexOf(n2);
A.splice(i1, 1);
B.splice(i2, 1);
}
for(let i=0; i<len; i++){
const aMin = Math.min(...A);
const bMax = Math.max(...B);
answer += (aMin * bMax);
func(aMin, bMax);
}
return answer
}
728x90
'코딩 테스트 > 프로그래머스 코딩 테스트 연습' 카테고리의 다른 글
1Level / Summer/Winter Coding(~2018) / 예산 (0) | 2023.05.26 |
---|---|
2Level / 연습 문제 / 숫자의 표현 (0) | 2023.05.25 |
1Level / 연습 문제 / 최대공약수와 최소공배수 (0) | 2023.05.23 |
2Level / Summer/Winter Coding(~2018) / 점프와 순간 이동 (0) | 2023.05.22 |
2Level / 2020 KAKAO BLIND RECRUITMENT / 문자열 압축 (0) | 2023.05.22 |