JavaScript의 Match 솔루션별 판매
문제:
색깔별로 짝을 지어야 하는 큰 양말 더미가 있습니다. 각 양말의 색상을 나타내는 정수 배열이 주어지면 색상이 일치하는 양말이 몇 켤레가 있는지 확인하십시오.
예시
n = 7,
ar = [1,2,1,2,1,3,2]
색상 1과 색상 2가 각각 한 켤레 있습니다. 각 색상에 하나씩 3개의 이상한 양말이 남아 있습니다. 쌍의 수는 2입니다.
기능 설명
아래 편집기에서 sockMerchant 기능을 완료하십시오.
sockMerchant에는 다음 매개변수가 있습니다.
int n: 더미에 있는 양말의 수
int ar[n]: 각 양말의 색상
보고
int: 쌍의 수
해결책:
이 문제를 해결하는 가장 간단한 방법은 다음과 같이 간단한 단계로 나누는 것입니다.
Javascript에서는 다음과 같이 해결합니다.
Map(4) { 10 => 4, 20 => 3, 30 => 1, 50 => 1 }
function sockMerchant(n, ar) {
//1. Loop through array items and arrange items in a map by unique color
let mapOfColors = new Map();
for(let i = 0; i< n ; i++ ){
// If found, increment the map value
if(mapOfColors.has(ar[i])){
let currentVal = mapOfColors.get(ar[i]);
mapOfColors.set(ar[i], currentVal+1);
}
// If item is not found, add it to map
else{
mapOfColors.set(ar[i], 1)
}
}
//2. From the map, we can now detemine which form a pair
let pairs = 0;
for(let countOfColor of mapOfColors.values() ){
// Check if it can create complete pairs
if(countOfColor % 2 === 0){
pairs += countOfColor/2;
}else{
pairs += (countOfColor-1)/2;
}
}
return pairs;
}
const pairs = sockMerchant(9, [10, 20, 20, 10, 10, 30, 50, 10, 20]);
console.log ( pairs);
Reference
이 문제에 관하여(JavaScript의 Match 솔루션별 판매), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dennisdup/sales-by-match-solution-in-javascript-125d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)