랜덤하게 자연수 숫자들을 받음 A,B A-> 랜덤하게 섞고 내보냄 -> B는 이것을 보고 가장 많은 점수를 낼 수 있는 조합으로 섞음 -> B의 가장 높은 점수를 내는 함수를 구하시오
아쉬움 1. 접근한 방법 sort -> sort B 의 작은 값부터 A의 가장 작은값보다 크면 같이 없애주고 bScore을 증가 시켜준다 splice로 해당 값이 나오면 뺴줘서 결국 다 돌게 하기
이 부분 시간 복잡도에서 안 좋은 점수를 받았다. 그래서 결국 85 functionsolution(A, B) { A.sort((a,b)=>a-b); B.sort((a,b)=>a-b); let bScore = 0; for(let i =0, {length}=B; i<length; i++){ for(let j=0, {length}=A; j<length; j++){ if(B[i]>A[j]){ B.splice(i,1) A.splice(j,1) bScore+=1 i=i-1; break; } } } return bScore; } solution([5,1,3,7],[2,2,6,8]); solution([6, 1, 6, 7],[3, 1, 3, 3]);
//splice로 하나씩 짜르는 것보단 이렇게 하는 것이 날 것 같다. B = B.slice(i+1,initLength) A = A.slice(j+1,initLength) bScore+=1 i=j=-1
// ETC // 아무튼 뭔가 for -for문에 slice잘 못 풀은 느낌 1. 만약에 A는 그냥 주어지고 B배열을 섞어서 ,B배열과 B의 가장 높은 점수를 구하라는 문제로 나올 수도 있겠다
피드…
내일 알바하고 나서 부터 다시 열심히 살겠습니다 :D 방학 기분을 냈습니다요 알고리즘 평소에 열심히 연습해야겠다