๋ฌธ์ ๐ฝ
๋ค๋ฅธ์ฌ๋ ํ์ด ๐ฝ
function solution(want, number, discount) {
let count = 0;
for (let i = 0; i < discount.length - 9; i++) {
const slice = discount.slice(i, i+10);
let flag = true;
for (let j = 0; j < want.length; j++) {
if (slice.filter(item => item === want[j]).length !== number[j]) {
flag = false;
break;
}
}
if (flag) count += 1;
}
return count;
}
๋ดํ์ด๐ฝ
1. ์ฑ๊ณต โญ
function solution(want, number, discount) {
var answer = 0;
let totalGoodsCnt = number.reduce((acc,value)=>{
return acc+value
},0)
let refArr = []
for(let z=0; z<want.length; z++ ){
for(let k=1; k<=number[z]; k++){
refArr.push(want[z])
}
}
for(let i=0; i+totalGoodsCnt<=discount.length; i++){
let b = refArr.slice()
for(let j=i; j<i+totalGoodsCnt; j++){
if(b.indexOf(discount[j])>=0){
b.splice(b.indexOf(discount[j]),1)
}
}
if(b.length===0){
++answer
}
}
return answer;
}
๋๋์ ๐ฝ
- reduce ์ฉ๋ฒ
reduce( (acc, currentValue) = > { return acc+currentValue } , 0 )
>> ๋ฐฐ์ด์ ์ํํ๋ฉด์ acc์ ๊ฐ์ ๊ณ์ ๋ํ๋ค, ์ฌ๊ธฐ์ 0์ acc์ ์ด๊ธฐ๊ฐ์ด๋ค.
- slice์ ์ฉ๋ฒ ์ค ํ๋ > ๋ฐฐ์ด์ ๊น์ ๋ณต์ฌ
let newArr = oldArray.slice() ๋ oldArray๋ฅผ ๊น์ ๋ณต์ฌ ํ๋ค. (โป ๋จ .slice() ๋ 1์ฐจ์ ๋ฐฐ์ด์์๋ง ๊น์ ๋ณต์ฌ๊ฐ ๊ฐ๋ฅํ๋ค)
- indexOf ์ฉ๋ฒ
let oldArray = [ "a", "b" , "b", "c" ] ์ธ๊ฒฝ์ฐ
oldArray.indexOf("b") => 1์ด ๋์จ๋ค ( "b" ํ๋๋ฐ์ ์ธ์งํ์ง ๋ชปํ๋ค )
oldArray.indexOf("d") => -1์ด ๋์จ๋ค ( ํด๋นํ๋ ๊ฐ์ด ์์ ๊ฒฝ์ฐ -1 ์ด ๋์จ๋ค )
- ๋ฌธ์ ๋ฅผ ๋๋ฐ๋ก ์ฝ์ ...
> ์ฃผ์ด์ง ์ ํ์ฌํญ์ ์ ๋๋ก ์ฝ์ง ์์๋ค. ์ฝ์๋ค๋ฉด ๋ ์ฝ๊ฒ ํ ์ ์์์ํ ๋ฐ...
'๐Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ํ์ด(js) > ํ ์ธ ํ์ฌ (0) | 2023.07.10 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ํ์ด(js) > ๊ธฐ๋ฅ๊ฐ๋ฐ (0) | 2023.07.09 |
ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ํ์ด(js) > ํํ(lv2) (0) | 2023.07.05 |
ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ํ์ด(js) > ์์(lv2) (0) | 2023.07.04 |
ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ํ์ด(js) > ํ๋ ฌ์ ๊ณฑ์ (lv2) (0) | 2023.07.03 |