Q.2개의 배열을 허용하는 same이라는 함수를 작성하십시오.
배열의 모든 값이 두 번째 배열에 해당하는 값을 가지면 참을 반환해야 합니다.
=> 첫 번째 배열의 인자 값의 제곱이 두 번째 배열의 인자 값으로 있다면 참을 반환해라.
function same(arr1,arr2){
if(arr1.length !== arr2.length) return false // 1.배열의 length가 같은 지 확인하자.
let frequency1 = {};
let frequency2 = {}; // 2.값을 넣어줄 빈 객체를 만들자.
for(let val of arr1){
frequency1[val]=(frequency1[val] || 0) +1;
}
// 3.frequency1객체에 arr1을 돌면서 key값을 넣어주는데 그에 해당하는 value값이 없다면
+1, 있다면 있는 값에서 +1
for(let val of arr2){
frequency2[val]=(frequency2[val] || 0 )+1;
}
console.log(frequency1,frequency2); //중간 정검
for(let key in frequency1){
if(!(key**2 in frequency2)){return false;}
if(frequency1[key]!==frequency2[key**2]) {return false};
} // 4.한 객체 내에 있는 key값의 제곱이 두번째 객체key값인지 확인. 없다면 false
return true;
}
same([1, 2, 3, 2, 5], [9, 1, 4, 4, 25]);
{1: 1, 2: 2, 3: 1, 5: 1} {1: 1, 4: 2, 9: 1, 25: 1}
true
빈도수와 true 반환😎
아 첨에 자꾸 값 구하니까 key값이 안정해져있다고 나오길래 뭐가 문제지 하고 계속 찾았는데 안나와서
인내심 검사하는 줄 알았는데 괄호 하나 때문이였다... 왜 그렇게 그런게 눈에 안띄고난리 ㅠ
어쨋든 잘 해결!
'알고리즘 정리' 카테고리의 다른 글
기본 재귀함수 (0) | 2023.05.24 |
---|---|
Queue 자료구조 (0) | 2023.05.02 |
스택자료구조 사용한 후위식 (0) | 2023.05.01 |
해쉬 알고리즘 (1) | 2023.04.20 |
슬라이딩 윈도우 (0) | 2023.04.18 |