{"componentChunkName":"component---src-templates-blog-post-js","path":"/Algorithm/count_apples_and_oranges/","result":{"data":{"site":{"siteMetadata":{"title":"JULog","author":"[Ju Chan Hwang]","siteUrl":"https://julog.netlify.app","comment":{"disqusShortName":"","utterances":"JuChanHwang/gatsby-starter-bee"},"sponsor":{"buyMeACoffeeId":"jbee"}}},"markdownRemark":{"id":"45d9ae29-a936-56b0-b2e0-f202f205c2a7","excerpt":"문제 설명  풀이","html":"<h2 id=\"문제-설명\" style=\"position:relative;\"><a href=\"#%EB%AC%B8%EC%A0%9C-%EC%84%A4%EB%AA%85\" aria-label=\"문제 설명 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>문제 설명</h2>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">/*\n* 사과와 오렌지\n*\n다음과 같은 흑백 세상에 오렌지 나무와 사과나무가 있습니다. a는 사과나무의 위치를, b는 오렌지 나무의 위치를 나타냅니다.\n두 나무 사이에는 Vanilla House가 있고, Vanilla House의 영역은 s에서부터 t까지로 정의됩니다.\n*\n*     * *                                   ___________                                    * *\n*     * *                                   | Vanilla |                                    * *\n*      |                                    |  House  |                                     |\n* -----a---------------------------------s---------------t----------------------------------b-----\n* 나무에서 과일이 다 익으면, 나무에서부터 D만큼 떨어진 곳에 떨어지게 됩니다. D가 음수일 경우 나무의 왼쪽으로 떨어지는 것을 의미합니다.\n* D가 양수일 경우 과일은 나무의 오른쪽 방향으로 떨어집니다.\n* m개의 사과와 n개의 오렌지가 익어서 떨어졌을 때, Vanilla House 영역 안에 떨어진 사과와 오렌지가 몇 개인지 배열로 반환해주세요!\n* 반환값은 [사과의 개수, 오렌지의 개수] 형태의 배열로 반환해주시면 됩니다!\n*\n* 예를들어, Vanilla House가 s=7 이고 t=10 인 영역에 있고, 사과나무와 오렌지 나무가 각각 a=4, b=12인 지점에 있습니다.\n* 그리고 m=3개의 사과와 n=3개의 오렌지가 있습니다. 각각 apples=[2, 3, -4]와 oranges=[3, -2, -4]로 떨어지는 방향이 정해졌습니다.\n* 그렇다면 사과는 [4 + 2, 4 + 3, 4 + (-4)]=[6, 7, 0]로 떨어지는 지점이 정해지고,\n* 오렌지는 [12 + 3, 12 + (-2), 12 + (-4)]=[15, 10, 8]로 떨어지는 지점이 정해집니다.\n* 결과적으로 Vanilla House의 영역[7, 10]에는 1개의 사과와 2개의 오렌지가 떨어지게 됩니다. 따라서 [1, 2]를 반환해주면 되겠죠!\n*\n* @param {number} s\n* @param {number} t\n* @param {number} a\n* @param {number} b\n* @param {number[]} apples\n* @param {number[]} oranges\n* @return {number[]}\n*/\n\n// 아래의 export default 키워드는 '아직' 신경쓰지 않으셔도 됩니다. :)\nfunction countApplesAndOranges(s, t, a, b, apples, oranges) {\n  let m = 3, n = 3;\n  let appleLocation = apples.map(el => el + a);\n  let orangeLocation = oranges.map(el => el + b);\n  let houseLocation = [];\n  for (let i = s; i &lt;= t; i++) {\n    houseLocation.push(i);\n  }\n\n  let appleInHouseNum = countFruitLocation(appleLocation, houseLocation);\n  let orangeInHouseNum = countFruitLocation(orangeLocation, houseLocation);\n  \n  return [appleInHouseNum, orangeInHouseNum];\n}\n\nfunction countFruitLocation(fruitLocation, houseLocation) {\n  let countNum = 0;\n  fruitLocation.forEach(element => houseLocation.includes(element) ? countNum++ : null)\n  return countNum;\n}\n\nconsole.log(countApplesAndOranges(7, 10, 4, 12, [2, 3, -4], [3, -2, -4]));</code></pre></div>\n<p><br><br></p>\n<h3 id=\"풀이\" style=\"position:relative;\"><a href=\"#%ED%92%80%EC%9D%B4\" aria-label=\"풀이 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>풀이</h3>\n<div class=\"gatsby-highlight\" data-language=\"js\"><pre class=\"language-js\"><code class=\"language-js\"><span class=\"token comment\">// 아래의 export default 키워드는 '아직' 신경쓰지 않으셔도 됩니다. :)</span>\n<span class=\"token keyword\">function</span> <span class=\"token function\">countApplesAndOranges</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">s<span class=\"token punctuation\">,</span> t<span class=\"token punctuation\">,</span> a<span class=\"token punctuation\">,</span> b<span class=\"token punctuation\">,</span> apples<span class=\"token punctuation\">,</span> oranges</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">let</span> m <span class=\"token operator\">=</span> <span class=\"token number\">3</span><span class=\"token punctuation\">,</span> n <span class=\"token operator\">=</span> <span class=\"token number\">3</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">let</span> appleLocation <span class=\"token operator\">=</span> apples<span class=\"token punctuation\">.</span><span class=\"token function\">map</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">el</span> <span class=\"token operator\">=></span> el <span class=\"token operator\">+</span> a<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">let</span> orangeLocation <span class=\"token operator\">=</span> oranges<span class=\"token punctuation\">.</span><span class=\"token function\">map</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">el</span> <span class=\"token operator\">=></span> el <span class=\"token operator\">+</span> b<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">let</span> houseLocation <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">let</span> i <span class=\"token operator\">=</span> s<span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;=</span> t<span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    houseLocation<span class=\"token punctuation\">.</span><span class=\"token function\">push</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n\n  <span class=\"token keyword\">let</span> appleInHouseNum <span class=\"token operator\">=</span> <span class=\"token function\">countFruitLocation</span><span class=\"token punctuation\">(</span>appleLocation<span class=\"token punctuation\">,</span> houseLocation<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">let</span> orangeInHouseNum <span class=\"token operator\">=</span> <span class=\"token function\">countFruitLocation</span><span class=\"token punctuation\">(</span>orangeLocation<span class=\"token punctuation\">,</span> houseLocation<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  \n  <span class=\"token keyword\">return</span> <span class=\"token punctuation\">[</span>appleInHouseNum<span class=\"token punctuation\">,</span> orangeInHouseNum<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token keyword\">function</span> <span class=\"token function\">countFruitLocation</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">fruitLocation<span class=\"token punctuation\">,</span> houseLocation</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">let</span> countNum <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n  fruitLocation<span class=\"token punctuation\">.</span><span class=\"token function\">forEach</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">element</span> <span class=\"token operator\">=></span> houseLocation<span class=\"token punctuation\">.</span><span class=\"token function\">includes</span><span class=\"token punctuation\">(</span>element<span class=\"token punctuation\">)</span> <span class=\"token operator\">?</span> countNum<span class=\"token operator\">++</span> <span class=\"token operator\">:</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">)</span>\n  <span class=\"token keyword\">return</span> countNum<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token function\">countApplesAndOranges</span><span class=\"token punctuation\">(</span><span class=\"token number\">7</span><span class=\"token punctuation\">,</span> <span class=\"token number\">10</span><span class=\"token punctuation\">,</span> <span class=\"token number\">4</span><span class=\"token punctuation\">,</span> <span class=\"token number\">12</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span><span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">-</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span><span class=\"token number\">3</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">-</span><span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token operator\">-</span><span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// [ 1, 2 ]</span></code></pre></div>","frontmatter":{"title":"count apples and oranges(사과와 오렌지)","date":"July 14, 2020"}}},"pageContext":{"slug":"/Algorithm/count_apples_and_oranges/","previous":{"fields":{"slug":"/TypeScript/@types_typeRoots_and_types/"},"frontmatter":{"title":"@types, typeRoots and types","category":"TypeScript","draft":false}},"next":{"fields":{"slug":"/Algorithm/2xn_Tiling/"},"frontmatter":{"title":"2Xn Tiling","category":"Algorithm","draft":false}}}},"staticQueryHashes":["3128451518","96099027"]}