let product =[[6,3], [6,1], [10,3], [2,5]]
a,b 비교 더 작은걸 앞에 써주기 (오름차순)
product.sort((a, b) => a[0] + a[1] - (b[0] + b[1]));
헷갈리는 부분은 항상 a[0] 인덱스 식으로 써주기 때문에
어지러웠지만 사실 a[0] = 1이고 , a[1] = 2 라면
1 + 2 가 되는거다.
그래서 b의 각 인덱스의 값을 더해 a - b를 해준다.
sort에서의 a-b는 오름차순, b-a는 내림차순이다.
for(let i = 0; i < arr.length; i++) {
for(let j = 0; i < arr.length; i++) {
// 이중포문으로 i j 포문이 같은 일을 수행할 것 같지만,
// 차별점을 두고 보면 좋을 것 같다.
// 각각의 인덱스 번호만 가져다 쓴다고 보는게
// 가장 멀리볼 수 있는 구조이고 헷갈리지도 않는 것 같다.
}
}
완전 탐색 초입에 가장 헷갈렸던 부분
: 중첩으로 포문을 사용했을 때의 경우의 수를 내 머릿속으로 다 계산하려하지 말자
결국 완전 탐색을 해서 그에 적합한 상황 일부를 찾아내는거고 ,
완전 탐색 자체가 컴퓨터의 빠른 연산을 이용해서 무식하게 다 찾아보는 방법이라서
그걸 내 머릿속으로 또 계산하고 상황상황을 알고 있으려는건 늪에 빠지는 생각이다.
검색해보니 브루탈 포스만을 이용해서 정답을 구하는 코딩 테스트 문제는 드물고,
어떤 과정으로 가기 전 값을 구할 때?
등 필요한 상황에 일부 적용하는 느낌으로 나오는 것 같다.
문제를 보고 어떤 부분에서 완전 탐색이 필요한지를 아는게 중요하다.
이건 많이 풀다보면 알게 될거같다.