ํ๋ก๊ทธ๋๋จธ์ค LV. 2 ํ ์ธ ํ์ฌ
XYZ ๋งํธ๋ ์ผ์ ํ ๊ธ์ก์ ์ง๋ถํ๋ฉด 10์ผ ๋์ ํ์ ์๊ฒฉ์ ๋ถ์ฌํฉ๋๋ค. XYZ ๋งํธ์์๋ ํ์์ ๋์์ผ๋ก ๋งค์ผ ํ ๊ฐ์ง ์ ํ์ ํ ์ธํ๋ ํ์ฌ๋ฅผ ํฉ๋๋ค. ํ ์ธํ๋ ์ ํ์ ํ๋ฃจ์ ํ๋์ฉ๋ง ๊ตฌ๋งคํ ์ ์์ต๋๋ค. ์๋ฐํ ์ ํ์ด๋ ์์ ์ด ์ํ๋ ์ ํ๊ณผ ์๋์ด ํ ์ธํ๋ ๋ ์ง์ 10์ผ ์ฐ์์ผ๋ก ์ผ์นํ ๊ฒฝ์ฐ์ ๋ง์ถฐ์ ํ์๊ฐ์ ์ ํ๋ ค ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ์ ํ์ด๊ฐ ์ํ๋ ์ ํ์ด ๋ฐ๋๋ 3๊ฐ, ์ฌ๊ณผ 2๊ฐ, ์ 2๊ฐ, ๋ผ์ง๊ณ ๊ธฐ 2๊ฐ, ๋๋น 1๊ฐ์ด๋ฉฐ, XYZ ๋งํธ์์ 15์ผ๊ฐ ํ์์ ๋์์ผ๋ก ํ ์ธํ๋ ์ ํ์ด ๋ ์ง ์์๋๋ก ์นํจ, ์ฌ๊ณผ, ์ฌ๊ณผ, ๋ฐ๋๋, ์, ์ฌ๊ณผ, ๋ผ์ง๊ณ ๊ธฐ, ๋ฐ๋๋, ๋ผ์ง๊ณ ๊ธฐ, ์, ๋๋น, ๋ฐ๋๋, ์ฌ๊ณผ, ๋ฐ๋๋์ธ ๊ฒฝ์ฐ์ ๋ํด ์์๋ด ์๋ค. ์ฒซ์งธ ๋ ๋ถํฐ ์ดํ ๊ฐ์๋ ๋๋น๊ฐ ํ ์ธํ์ง ์๊ธฐ ๋๋ฌธ์ ์ฒซ์งธ ๋ ์๋ ํ์๊ฐ์ ์ ํ์ง ์์ต๋๋ค. ๋์งธ ๋ ๋ถํฐ ์ดํ ๊ฐ์๋ ๋ฐ๋๋๋ฅผ ์ํ๋ ๋งํผ ํ ์ธ๊ตฌ๋งคํ ์ ์๊ธฐ ๋๋ฌธ์ ๋์งธ ๋ ์๋ ํ์๊ฐ์ ์ ํ์ง ์์ต๋๋ค. ์ ์งธ ๋ , ๋ท์งธ ๋ , ๋ค์ฏ์งธ ๋ ๋ถํฐ ๊ฐ๊ฐ ์ดํ์ ์ํ๋ ์ ํ๊ณผ ์๋์ด ์ผ์นํ๊ธฐ ๋๋ฌธ์ ์ ์ค ํ๋ฃจ์ ํ์๊ฐ์ ์ ํ๋ ค ํฉ๋๋ค.
์ ํ์ด๊ฐ ์ํ๋ ์ ํ์ ๋ํ๋ด๋ ๋ฌธ์์ด ๋ฐฐ์ด want์ ์ ํ์ด๊ฐ ์ํ๋ ์ ํ์ ์๋์ ๋ํ๋ด๋ ์ ์ ๋ฐฐ์ด number, XYZ ๋งํธ์์ ํ ์ธํ๋ ์ ํ์ ๋ํ๋ด๋ ๋ฌธ์์ด ๋ฐฐ์ด discount๊ฐ ์ฃผ์ด์ก์ ๋, ํ์๋ฑ๋ก์ ์ ํ์ด๊ฐ ์ํ๋ ์ ํ์ ๋ชจ๋ ํ ์ธ ๋ฐ์ ์ ์๋ ํ์๋ฑ๋ก ๋ ์ง์ ์ด ์ผ์๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํ์์ค. ๊ฐ๋ฅํ ๋ ์ด ์์ผ๋ฉด 0์ return ํฉ๋๋ค.
์ ํ์ฌํญ
- 1 โค want์ ๊ธธ์ด = number์ ๊ธธ์ด โค 10
- 1 โค number์ ์์ โค 10
- number[i]๋ want[i]์ ์๋์ ์๋ฏธํ๋ฉฐ, number์ ์์์ ํฉ์ 10์ ๋๋ค.- 10 โค discount์ ๊ธธ์ด โค 100,000
- want์ discount์ ์์๋ค์ ์ํ๋ฒณ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด์ ๋๋ค.
- 1 โค want์ ์์์ ๊ธธ์ด, discount์ ์์์ ๊ธธ์ด โค 12
์ ์ถ๋ ฅ ์
want | number | discount | result |
---|---|---|---|
["banana", "apple", "rice", "pork", "pot"] | [3, 2, 2, 2, 1] | ["chicken", "apple", "apple", "banana", "rice", "apple", "pork", "banana", "pork", "rice", "pot", "banana", "apple", "banana"] | 3 |
["apple"] | [10] | ["banana", "banana", "banana", "banana", "banana", "banana", "banana", "banana", "banana", "banana"] | 0 |
function solution(want, number, discount) {
let want_obj = {}
let result = 0;
want.forEach((w, i) => {
want_obj[w] = number[i]
}) //์ฌ๊ณ ์ถ์ ๋ฌผ๊ฑด ๊ฐ์ฒด๋ก ์ ์ฅ
discount.forEach((o,i)=> {
let copy_obj = {...want_obj}; //์์ ๋ณต์ฌ
for(let j = i; j < i+10; j++){
if (discount[j] in copy_obj){
if(copy_obj[discount[j]] > 0){
copy_obj[discount[j]] -= 1
}}} // +10์ผ๊น์ง ์ํ๋ ์ ํ์ ๋ค ์ด ์ ์๋์ง ์ฒดํฌ
let check = false
Object.values(copy_obj).forEach(v => {
if(v != 0){
check = true;
return
}}) // ๋ค ์ด์ ์์ผ๋ฉด false ํ๋๋ผ๋ ๋ชป์์ผ๋ฉด true
if (!check){
result += 1; // ์ด ์ ์๋ ๋ ์ด ์์ผ๋ฉด ์นด์ดํธ๋ฅผ ์ฌ๋ ค์ค๋ค.
}
})
return result
}
๋ฌธ์ ๋ฅผ ์ ํํ ์ฝ์ง ์์์ ์ฒ์์๋ ๋ฌผ๊ฑด์ ์ด ์ ์๋ ๋ ์ค์ ์ ์ผ ์ฒ์ ๋์ค๋ ๋ ์ ๊ตฌํ๋ ๋ฌธ์ ์ธ ์ค ์์์ต๋๋ค.
ํ์ง๋ง ํ์ ๋ฌผ๊ฑด์ ์ด ์ ์๋ ๋ ์ด ๋ช์ผ์ธ์ง๋ฅผ ํ์ ํ๋ ๋ฌธ์ ๋ผ๋ ๊ฒ์ ์๊ฒ๋๊ณ ํด๊ฒฐํ์์ต๋๋ค.