<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>whatisthis?</title>
    <link>https://mywebproject.tistory.com/</link>
    <description>  web study &amp;amp; project archive
  https://github.com/thisisyjin</description>
    <language>ko</language>
    <pubDate>Sun, 14 Jun 2026 13:13:57 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>thisisyjin</managingEditor>
    <image>
      <title>whatisthis?</title>
      <url>https://tistory1.daumcdn.net/tistory/4853780/attach/2ca200b2eec24323b448336eabd1b004</url>
      <link>https://mywebproject.tistory.com</link>
    </image>
    <item>
      <title>[PCB Artwork] PCB 디자인 (with Eagle CAD)</title>
      <link>https://mywebproject.tistory.com/484</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;PCB Design&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1년차 웹 개발자가 된 나는 요즘 오랫만에 전공을 공부하는중이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹 개발도 재미있고 좋지만, 전공에서 유일하게 흥미로웠던 PCB 디자인이 그리워져서(..?)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오랫만에 캐드를 다뤄보고 싶었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PCB 디자인에는 여러가지 툴이 있지만, 나는 Eagle 캐드를 선택하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. Mac에서 사용 가능! (완전 중요)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 무료이다!&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 교육 자료도 많다! (내 기준)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- Eagle(이글) Download&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.autodesk.com/products/eagle/free-download&quot;&gt;https://www.autodesk.com/products/eagle/free-download&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1697946502039&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Download EAGLE | Free Download | Autodesk&quot; data-og-description=&quot;EAGLE is PCB design and electrical schematic software. Get EAGLE free download for hobbyists and makers.&quot; data-og-host=&quot;www.autodesk.com&quot; data-og-source-url=&quot;https://www.autodesk.com/products/eagle/free-download&quot; data-og-url=&quot;https://www.autodesk.com/products/eagle/free-download&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.autodesk.com/products/eagle/free-download&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.autodesk.com/products/eagle/free-download&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Download EAGLE | Free Download | Autodesk&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;EAGLE is PCB design and electrical schematic software. Get EAGLE free download for hobbyists and makers.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.autodesk.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- 교육 자료&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.autodesk.com/products/eagle/overview?term=1-YEAR&amp;amp;tab=subscription&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.autodesk.com/products/eagle/overview?term=1-YEAR&amp;amp;tab=subscription&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1697946512464&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;EAGLE / Fusion 360 Software | Get Prices &amp;amp; Buy Official | Autodesk&quot; data-og-description=&quot;Get access to EAGLE by purchasing a Fusion 360 subscription from the official Autodesk store or a reseller.&quot; data-og-host=&quot;www.autodesk.com&quot; data-og-source-url=&quot;https://www.autodesk.com/products/eagle/overview?term=1-YEAR&amp;amp;tab=subscription&quot; data-og-url=&quot;https://www.autodesk.com/products/eagle/overview?tab=subscription&amp;amp;term=1-YEAR&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.autodesk.com/products/eagle/overview?term=1-YEAR&amp;amp;tab=subscription&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.autodesk.com/products/eagle/overview?term=1-YEAR&amp;amp;tab=subscription&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;EAGLE / Fusion 360 Software | Get Prices &amp;amp; Buy Official | Autodesk&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Get access to EAGLE by purchasing a Fusion 360 subscription from the official Autodesk store or a reseller.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.autodesk.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AutoDesk에서 제공하는 교육 자료도 충분히 잘 되어있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추가로, 실습 강의를 듣고자 Udemy 강의를 듣고있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.udemy.com/course/pcb-design-eagle/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.udemy.com/course/pcb-design-eagle/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/xTJpK/btsyRXjaRkb/Rve0cSLxIw8VxQAw404MEK/PCB%E1%84%80%E1%85%AD%E1%84%8B%E1%85%B2%E1%86%A8.pdf?attach=1&amp;amp;knm=tfile.pdf&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;PCB교육.pdf&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;4.05MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 외에도 다양한 교육 자료가 있어 너무 오랫만에 하는 나라도 충분히 이해하면서 잘 할 수 있다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실습하는 화면을 보면서 하니까 대학 생활이 생각나고,,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 한 번 뿐인 인생 내가 하고싶은 일을 하면서 살고싶기 때문에 언제든 새로운 길을 갈 수 있도록&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전공을 까먹지 않을 정도로(...) 한 번 공부해보고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나 자신 화이팅.&lt;/p&gt;</description>
      <category>WEB STUDY/ETC.</category>
      <author>thisisyjin</author>
      <guid isPermaLink="true">https://mywebproject.tistory.com/484</guid>
      <comments>https://mywebproject.tistory.com/484#entry484comment</comments>
      <pubDate>Sun, 22 Oct 2023 12:55:34 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스] 같은 숫자는 싫어 - JavaScript</title>
      <link>https://mywebproject.tistory.com/482</link>
      <description>&lt;h1&gt;javascript&lt;/h1&gt;
&lt;h2&gt;문제 설명&lt;/h2&gt;
&lt;p&gt;배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면,&lt;/p&gt;
&lt;p&gt;arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다.&lt;br&gt;arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다.&lt;/p&gt;
&lt;p&gt;배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요.&lt;/p&gt;
&lt;h3&gt;제한 조건&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;배열 arr의 크기 : 1,000,000 이하의 자연수&lt;/li&gt;
&lt;li&gt;배열 arr의 원소의 크기 : 0보다 크거나 같고 9보다 작거나 같은 정수&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;예시&lt;/h3&gt;
&lt;p&gt;입출력 예&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;arr                answer
[1,1,3,3,0,1,1]    [1,3,0,1]
[4,4,4,3,3]        [4,3]&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h2&gt;내가 작성한 코드&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;function solution(arr)
{
    let answer = [];
    let prev = &amp;#39;&amp;#39;;

    for (let n of arr) {
        if (prev !== n) {
            answer.push(n);
        }
        prev = n;
    }
    return answer;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;연속으로 나타나는 숫자를 하나만 남기고 제거하기 위해&lt;br&gt;for...of 반복문으로 arr 배열을 순회하며&lt;br&gt;prev가 n이 아닐때만 배열에 push한다.&lt;br&gt;그리고 난 후 매 턴마다 prev를 n으로 갱신한다. &lt;/p&gt;
&lt;h2&gt;실행 결과&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;테스트 1 〉    통과 (0.05ms, 30.1MB)
테스트 2 〉    통과 (0.07ms, 30MB)
테스트 3 〉    통과 (0.08ms, 29.8MB)
테스트 4 〉    통과 (0.06ms, 29.9MB)
테스트 5 〉    통과 (0.06ms, 30MB)
테스트 6 〉    통과 (0.07ms, 30MB)
테스트 7 〉    통과 (0.13ms, 29.8MB)
테스트 8 〉    통과 (0.09ms, 30.1MB)
테스트 9 〉    통과 (0.08ms, 30.1MB)
테스트 10 〉    통과 (0.06ms, 30.1MB)
테스트 11 〉    통과 (0.09ms, 30MB)
테스트 12 〉    통과 (0.06ms, 30MB)
테스트 13 〉    통과 (0.06ms, 30.1MB)
테스트 14 〉    통과 (0.10ms, 30.2MB)
테스트 15 〉    통과 (0.07ms, 30.3MB)
테스트 16 〉    통과 (0.07ms, 30.1MB)
테스트 17 〉    통과 (0.05ms, 30MB)
효율성  테스트
테스트 1 〉    통과 (34.64ms, 89.5MB)
테스트 2 〉    통과 (31.58ms, 89.4MB)
테스트 3 〉    통과 (31.70ms, 89.6MB)
테스트 4 〉    통과 (32.61ms, 89.6MB)&lt;/code&gt;&lt;/pre&gt;</description>
      <category>ALGORITHM/PROGRAMMERS</category>
      <author>thisisyjin</author>
      <guid isPermaLink="true">https://mywebproject.tistory.com/482</guid>
      <comments>https://mywebproject.tistory.com/482#entry482comment</comments>
      <pubDate>Wed, 20 Jul 2022 14:06:05 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스] 나누어 떨어지는 숫자 배열 - JavaScript</title>
      <link>https://mywebproject.tistory.com/481</link>
      <description>&lt;h1&gt;javascript&lt;/h1&gt;
&lt;h2&gt;문제 설명&lt;/h2&gt;
&lt;p&gt;array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.&lt;br&gt;divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.&lt;/p&gt;
&lt;h3&gt;제한 조건&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;arr은 자연수를 담은 배열입니다.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;divisor는 자연수입니다.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;array는 길이 1 이상인 배열입니다.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;예시&lt;/h3&gt;
&lt;p&gt;입출력 예&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;arr                divisor    return
[5, 9, 7, 10]    5        [5, 10]
[2, 36, 1, 3]    1        [1, 2, 3, 36]
[3,2,6]            10        [-1]&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;입출력 예 설명&lt;/h3&gt;
&lt;p&gt;입출력 예#1&lt;br&gt;arr의 원소 중 5로 나누어 떨어지는 원소는 5와 10입니다. 따라서 [5, 10]을 리턴합니다.&lt;/p&gt;
&lt;p&gt;입출력 예#2&lt;br&gt;arr의 모든 원소는 1으로 나누어 떨어집니다. 원소를 오름차순으로 정렬해 [1, 2, 3, 36]을 리턴합니다.&lt;/p&gt;
&lt;p&gt;입출력 예#3&lt;br&gt;3, 2, 6은 10으로 나누어 떨어지지 않습니다. 나누어 떨어지는 원소가 없으므로 [-1]을 리턴합니다.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;내가 작성한 코드&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;function solution(arr, divisor) {
    let answer = [];
    arr.forEach(x =&amp;gt; {
        if(x % divisor === 0) answer.push(x);
    })

    if (answer.length === 0) return [-1];
    return answer.sort((x,y) =&amp;gt; x - y);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;만약 divisor로 나눠떨어지면 push하고, 오름차순으로 정렬한 배열을 리턴한다.&lt;br&gt;length가 0이면 -1을 리턴한다.&lt;br&gt;&lt;code&gt;forEach&lt;/code&gt; 말고 &lt;code&gt;for..or&lt;/code&gt;를 사용할 수도 있다.&lt;/p&gt;
&lt;h2&gt;실행 결과&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;테스트 1 〉    통과 (0.10ms, 30.2MB)
테스트 2 〉    통과 (0.08ms, 30.2MB)
테스트 3 〉    통과 (0.08ms, 30MB)
테스트 4 〉    통과 (0.08ms, 30.2MB)
테스트 5 〉    통과 (0.10ms, 30.4MB)
테스트 6 〉    통과 (25.57ms, 33.5MB)
테스트 7 〉    통과 (0.18ms, 29.9MB)
테스트 8 〉    통과 (0.08ms, 29.9MB)
테스트 9 〉    통과 (0.14ms, 30MB)
테스트 10 〉    통과 (0.17ms, 30.2MB)
테스트 11 〉    통과 (0.11ms, 30.1MB)
테스트 12 〉    통과 (0.17ms, 29.9MB)
테스트 13 〉    통과 (0.24ms, 30.2MB)
테스트 14 〉    통과 (0.20ms, 30.3MB)
테스트 15 〉    통과 (0.17ms, 30.3MB)
테스트 16 〉    통과 (0.10ms, 30.1MB)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;**&lt;/p&gt;
&lt;h2&gt;✅ 리팩토링&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;function solution(arr, divisor) {

    const answer = arr.filter(x =&amp;gt; x % divisor === 0).sort((a,b) =&amp;gt; a-b);
    return answer.length === 0 ? [-1] : answer;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;filter&lt;/code&gt; 메서드를 이용한 버전이다. &lt;/p&gt;
&lt;h2&gt;실행 결과&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;
테스트 1 〉    통과 (0.06ms, 29.9MB)
테스트 2 〉    통과 (0.08ms, 29.9MB)
테스트 3 〉    통과 (0.18ms, 30.5MB)
테스트 4 〉    통과 (0.07ms, 30.2MB)
테스트 5 〉    통과 (0.06ms, 30.4MB)
테스트 6 〉    통과 (21.16ms, 33.5MB)
테스트 7 〉    통과 (0.18ms, 30.2MB)
테스트 8 〉    통과 (0.06ms, 29.9MB)
테스트 9 〉    통과 (0.13ms, 30.1MB)
테스트 10 〉    통과 (0.16ms, 30.3MB)
테스트 11 〉    통과 (0.10ms, 29.9MB)
테스트 12 〉    통과 (0.11ms, 30MB)
테스트 13 〉    통과 (0.26ms, 30.2MB)
테스트 14 〉    통과 (0.16ms, 30.3MB)
테스트 15 〉    통과 (0.15ms, 30.4MB)
테스트 16 〉    통과 (0.09ms, 30MB)&lt;/code&gt;&lt;/pre&gt;</description>
      <category>ALGORITHM/PROGRAMMERS</category>
      <author>thisisyjin</author>
      <guid isPermaLink="true">https://mywebproject.tistory.com/481</guid>
      <comments>https://mywebproject.tistory.com/481#entry481comment</comments>
      <pubDate>Wed, 20 Jul 2022 14:02:07 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스] 두 정수 사이의 합 - JavaScript</title>
      <link>https://mywebproject.tistory.com/480</link>
      <description>&lt;h1&gt;javascript&lt;/h1&gt;
&lt;h2&gt;문제 설명&lt;/h2&gt;
&lt;p&gt;두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.&lt;br&gt;예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.&lt;/p&gt;
&lt;h3&gt;제한 조건&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.&lt;/li&gt;
&lt;li&gt;a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.&lt;/li&gt;
&lt;li&gt;a와 b의 대소관계는 정해져있지 않습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;예시&lt;/h3&gt;
&lt;p&gt;입출력 예&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;a    b    return
3    5    12
3    3    3
5    3    12&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h2&gt;내가 작성한 코드&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;function solution(a, b) {
    return (a + b) * (Math.abs(b - a) + 1) / 2
}&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;실행 결과&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;테스트 1 〉    통과 (0.03ms, 30MB)
테스트 2 〉    통과 (0.12ms, 29.7MB)
테스트 3 〉    통과 (0.03ms, 30.1MB)
테스트 4 〉    통과 (0.10ms, 30.1MB)
테스트 5 〉    통과 (0.03ms, 30.1MB)
테스트 6 〉    통과 (0.04ms, 30.1MB)
테스트 7 〉    통과 (0.03ms, 29.6MB)
테스트 8 〉    통과 (0.03ms, 30.2MB)
테스트 9 〉    통과 (0.03ms, 30.1MB)
테스트 10 〉    통과 (0.05ms, 29.9MB)
테스트 11 〉    통과 (0.03ms, 29.7MB)
테스트 12 〉    통과 (0.03ms, 30MB)
테스트 13 〉    통과 (0.04ms, 30MB)
테스트 14 〉    통과 (0.03ms, 30.1MB)
테스트 15 〉    통과 (0.03ms, 30.1MB)
테스트 16 〉    통과 (0.05ms, 30.1MB)&lt;/code&gt;&lt;/pre&gt;</description>
      <category>ALGORITHM/PROGRAMMERS</category>
      <author>thisisyjin</author>
      <guid isPermaLink="true">https://mywebproject.tistory.com/480</guid>
      <comments>https://mywebproject.tistory.com/480#entry480comment</comments>
      <pubDate>Wed, 20 Jul 2022 13:54:23 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스] 문자열 내 마음대로 정렬하기 - JavaScript</title>
      <link>https://mywebproject.tistory.com/479</link>
      <description>&lt;h1&gt;javascript&lt;/h1&gt;
&lt;h2&gt;문제 설명&lt;/h2&gt;
&lt;p&gt;문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 [&amp;quot;sun&amp;quot;, &amp;quot;bed&amp;quot;, &amp;quot;car&amp;quot;]이고 n이 1이면 각 단어의 인덱스 1의 문자 &amp;quot;u&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;a&amp;quot;로 strings를 정렬합니다.&lt;/p&gt;
&lt;h3&gt;제한 조건&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;strings는 길이 1 이상, 50이하인 배열입니다.&lt;/li&gt;
&lt;li&gt;strings의 원소는 소문자 알파벳으로 이루어져 있습니다.&lt;/li&gt;
&lt;li&gt;strings의 원소는 길이 1 이상, 100이하인 문자열입니다.&lt;/li&gt;
&lt;li&gt;모든 strings의 원소의 길이는 n보다 큽니다.&lt;/li&gt;
&lt;li&gt;인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;예시&lt;/h3&gt;
&lt;p&gt;입출력 예&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;strings                    n    return
[&amp;quot;sun&amp;quot;, &amp;quot;bed&amp;quot;, &amp;quot;car&amp;quot;]    1    [&amp;quot;car&amp;quot;, &amp;quot;bed&amp;quot;, &amp;quot;sun&amp;quot;]
[&amp;quot;abce&amp;quot;, &amp;quot;abcd&amp;quot;, &amp;quot;cdx&amp;quot;]    2    [&amp;quot;abcd&amp;quot;, &amp;quot;abce&amp;quot;, &amp;quot;cdx&amp;quot;]&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;입출력 예 설명&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;입출력 예 1&lt;/strong&gt;&lt;br&gt;&amp;quot;sun&amp;quot;, &amp;quot;bed&amp;quot;, &amp;quot;car&amp;quot;의 1번째 인덱스 값은 각각 &amp;quot;u&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;a&amp;quot; 입니다. 이를 기준으로 strings를 정렬하면 [&amp;quot;car&amp;quot;, &amp;quot;bed&amp;quot;, &amp;quot;sun&amp;quot;] 입니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;입출력 예 2&lt;/strong&gt;&lt;br&gt;&amp;quot;abce&amp;quot;와 &amp;quot;abcd&amp;quot;, &amp;quot;cdx&amp;quot;의 2번째 인덱스 값은 &amp;quot;c&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;x&amp;quot;입니다. 따라서 정렬 후에는 &amp;quot;cdx&amp;quot;가 가장 뒤에 위치합니다. &amp;quot;abce&amp;quot;와 &amp;quot;abcd&amp;quot;는 사전순으로 정렬하면 &amp;quot;abcd&amp;quot;가 우선하므로, 답은 [&amp;quot;abcd&amp;quot;, &amp;quot;abce&amp;quot;, &amp;quot;cdx&amp;quot;] 입니다.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;내가 작성한 코드&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;function solution(strings, n) {
    strings.sort((a,b) =&amp;gt; {
        let first = a[n];
        let second = b[n];
        if (first &amp;gt; second) return 1;
        if (first &amp;lt; second) return -1;
        if(first === second) {
            if (a &amp;gt; b) return 1;
            if (a &amp;lt; b) return -1;
            return 0;
        }
    });
    return strings;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;sort 함수를 제대로 이해해야 한다!&lt;br&gt;우선, n번째 글자를 기준으로 정렬해야 하므로,&lt;br&gt;&lt;code&gt;sort((a,b) =&amp;gt; {})&lt;/code&gt; 기준 a[n]과 b[n]을 비교해야 한다.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;a[n] &amp;gt; b[n] 인 경우 1을 리턴 (a-b가 양수)&lt;/li&gt;
&lt;li&gt;a[n] &amp;lt; b[n] 인 경우 -1을 리턴 (a-b가 음수 - 순서 바꿔야 함)&lt;/li&gt;
&lt;li&gt;a[n] === b[n] 이면?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;-&amp;gt; a, b를 비교. 만약 a&amp;gt;b이면 1 리턴, a&amp;lt;b면 -1 리턴.&lt;br&gt;a===b라면 두 문자열은 완전히 같으므로 0 리턴함.&lt;/p&gt;
&lt;h2&gt;실행 결과&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;
테스트 1 〉    통과 (0.06ms, 30.1MB)
테스트 2 〉    통과 (0.07ms, 30MB)
테스트 3 〉    통과 (0.07ms, 30MB)
테스트 4 〉    통과 (0.07ms, 30MB)
테스트 5 〉    통과 (0.06ms, 30.1MB)
테스트 6 〉    통과 (0.08ms, 30.1MB)
테스트 7 〉    통과 (0.07ms, 30.1MB)
테스트 8 〉    통과 (0.07ms, 29.9MB)
테스트 9 〉    통과 (0.06ms, 30.1MB)
테스트 10 〉    통과 (0.08ms, 29.7MB)
테스트 11 〉    통과 (0.14ms, 30MB)
테스트 12 〉    통과 (0.09ms, 29.8MB)&lt;/code&gt;&lt;/pre&gt;</description>
      <category>ALGORITHM/PROGRAMMERS</category>
      <author>thisisyjin</author>
      <guid isPermaLink="true">https://mywebproject.tistory.com/479</guid>
      <comments>https://mywebproject.tistory.com/479#entry479comment</comments>
      <pubDate>Sun, 10 Jul 2022 10:53:45 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스] 문자열 내 p와 y의 개수 - JavaScript</title>
      <link>https://mywebproject.tistory.com/478</link>
      <description>&lt;h1&gt;javascript&lt;/h1&gt;
&lt;h2&gt;문제 설명&lt;/h2&gt;
&lt;p&gt;대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 &amp;#39;p&amp;#39;의 개수와 &amp;#39;y&amp;#39;의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. &amp;#39;p&amp;#39;, &amp;#39;y&amp;#39; 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다.&lt;/p&gt;
&lt;p&gt;예를 들어 s가 &amp;quot;pPoooyY&amp;quot;면 true를 return하고 &amp;quot;Pyy&amp;quot;라면 false를 return합니다.&lt;/p&gt;
&lt;h3&gt;제한 조건&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;문자열 s의 길이 : 50 이하의 자연수&lt;/li&gt;
&lt;li&gt;문자열 s는 알파벳으로만 이루어져 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;예시&lt;/h3&gt;
&lt;p&gt;입출력 예&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;s            answer

&amp;quot;pPoooyY&amp;quot;    true
&amp;quot;Pyy&amp;quot;        false&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;입출력 예 설명&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;입출력 예 #1&lt;/strong&gt;&lt;br&gt;&amp;#39;p&amp;#39;의 개수 2개, &amp;#39;y&amp;#39;의 개수 2개로 같으므로 true를 return 합니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;입출력 예 #2&lt;/strong&gt;&lt;br&gt;&amp;#39;p&amp;#39;의 개수 1개, &amp;#39;y&amp;#39;의 개수 2개로 다르므로 false를 return 합니다.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;내가 작성한 코드&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;function solution(s){
    let pArr = [];
    let yArr = [];
    for(let i of s) {
        if (i === &amp;#39;p&amp;#39; || i === &amp;#39;P&amp;#39;) pArr.push(i);
        if (i === &amp;#39;y&amp;#39; || i === &amp;#39;Y&amp;#39;) yArr.push(i);
    }
    return pArr.length === yArr.length ? true : false;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;for..of&lt;/code&gt; 문으로 문자열의 각 문자를 순회한다.&lt;br&gt;만약 i가 p 또는 P라면 pArr에 push하고,&lt;br&gt;y또는 Y라면 yArr에 push한다.&lt;/p&gt;
&lt;p&gt;pArr.length와 yArr.length가 같다면 true를 반환한다.&lt;/p&gt;
&lt;h2&gt;실행 결과&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;테스트 1 〉    통과 (0.08ms, 30.1MB)
테스트 2 〉    통과 (0.06ms, 30MB)
테스트 3 〉    통과 (0.05ms, 30.1MB)
테스트 4 〉    통과 (0.05ms, 30MB)
테스트 5 〉    통과 (0.07ms, 30MB)
테스트 6 〉    통과 (0.07ms, 30MB)
테스트 7 〉    통과 (0.07ms, 30.1MB)
테스트 8 〉    통과 (0.10ms, 30.1MB)
테스트 9 〉    통과 (0.07ms, 30MB)
테스트 10 〉    통과 (0.10ms, 30MB)
테스트 11 〉    통과 (0.08ms, 30MB)
테스트 12 〉    통과 (0.09ms, 30MB)
테스트 13 〉    통과 (0.07ms, 30.1MB)
테스트 14 〉    통과 (0.10ms, 30.1MB)
테스트 15 〉    통과 (0.07ms, 30MB)
테스트 16 〉    통과 (0.07ms, 30MB)
테스트 17 〉    통과 (0.07ms, 30MB)
테스트 18 〉    통과 (0.10ms, 30MB)
테스트 19 〉    통과 (0.07ms, 30.1MB)
테스트 20 〉    통과 (0.07ms, 30MB)
테스트 21 〉    통과 (0.07ms, 30MB)
테스트 22 〉    통과 (0.07ms, 30MB)
테스트 23 〉    통과 (0.09ms, 30MB)
테스트 24 〉    통과 (0.07ms, 30MB)
테스트 25 〉    통과 (0.07ms, 29.9MB)
테스트 26 〉    통과 (0.07ms, 29.9MB)
테스트 27 〉    통과 (0.07ms, 29.9MB)
테스트 28 〉    통과 (0.07ms, 30MB)
테스트 29 〉    통과 (0.05ms, 30MB)
테스트 30 〉    통과 (0.07ms, 30.2MB)&lt;/code&gt;&lt;/pre&gt;</description>
      <category>ALGORITHM/PROGRAMMERS</category>
      <author>thisisyjin</author>
      <guid isPermaLink="true">https://mywebproject.tistory.com/478</guid>
      <comments>https://mywebproject.tistory.com/478#entry478comment</comments>
      <pubDate>Sun, 10 Jul 2022 10:45:16 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스] 문자열 내림차순으로 배치하기 - JavaScript</title>
      <link>https://mywebproject.tistory.com/477</link>
      <description>&lt;h1&gt;javascript&lt;/h1&gt;
&lt;h2&gt;문제 설명&lt;/h2&gt;
&lt;p&gt;문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.&lt;br&gt;s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.&lt;/p&gt;
&lt;h3&gt;제한 조건&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;str은 길이 1 이상인 문자열입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;예시&lt;/h3&gt;
&lt;p&gt;입출력 예&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;s            return

&amp;quot;Zbcdefg&amp;quot;    &amp;quot;gfedcbZ&amp;quot;&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h2&gt;내가 작성한 코드&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;function solution(s) {
    return s.split(&amp;#39;&amp;#39;).sort().reverse().join(&amp;#39;&amp;#39;)
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;각 문자를 요소로 한 배열로 만든 후, 사전식 배열을 하고 reverse()를 한 후 Join(&amp;#39;&amp;#39;)으로 합쳐준다.&lt;/p&gt;
&lt;h2&gt;실행 결과&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;테스트 1 〉    통과 (0.05ms, 29.9MB)
테스트 2 〉    통과 (0.05ms, 29.9MB)
테스트 3 〉    통과 (0.12ms, 29.9MB)
테스트 4 〉    통과 (0.05ms, 29.7MB)
테스트 5 〉    통과 (0.15ms, 29.7MB)
테스트 6 〉    통과 (0.10ms, 30MB)
테스트 7 〉    통과 (0.05ms, 30MB)
테스트 8 〉    통과 (0.06ms, 30MB)
테스트 9 〉    통과 (0.08ms, 29.9MB)
테스트 10 〉    통과 (0.07ms, 30MB)
테스트 11 〉    통과 (0.08ms, 29.9MB)
테스트 12 〉    통과 (0.05ms, 30.1MB)
테스트 13 〉    통과 (0.05ms, 30MB)
테스트 14 〉    통과 (0.04ms, 30.1MB)
테스트 15 〉    통과 (0.04ms, 29.9MB)
테스트 16 〉    통과 (0.04ms, 30MB)&lt;/code&gt;&lt;/pre&gt;</description>
      <category>ALGORITHM/PROGRAMMERS</category>
      <author>thisisyjin</author>
      <guid isPermaLink="true">https://mywebproject.tistory.com/477</guid>
      <comments>https://mywebproject.tistory.com/477#entry477comment</comments>
      <pubDate>Sun, 10 Jul 2022 10:27:50 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스] 문자열 다루기 기본 - JavaScript</title>
      <link>https://mywebproject.tistory.com/476</link>
      <description>&lt;h1&gt;javascript&lt;/h1&gt;
&lt;h2&gt;문제 설명&lt;/h2&gt;
&lt;p&gt;문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 &amp;quot;a234&amp;quot;이면 False를 리턴하고 &amp;quot;1234&amp;quot;라면 True를 리턴하면 됩니다.&lt;/p&gt;
&lt;h3&gt;제한 조건&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;s는 길이 1 이상, 길이 8 이하인 문자열입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;예시&lt;/h3&gt;
&lt;p&gt;입출력 예&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;s        return

&amp;quot;a234&amp;quot;    false
&amp;quot;1234&amp;quot;    true&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h2&gt;내가 작성한 코드&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;function solution(s) {
       return parseInt(s)===Number(s) &amp;amp;&amp;amp; s.length === 4 || s.length ===6 ? true : false;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;숫자로만 구성되어 있으면 &lt;code&gt;true&lt;/code&gt;를 리턴하면 된다.&lt;br&gt;-&amp;gt; parseInt(s) === Number(s) 이면 전부 숫자로 되어있는 것.&lt;br&gt;만약 길이가 4나 6이면 true를 반환한다.&lt;/p&gt;
&lt;h2&gt;실행 결과&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;테스트 1 〉    통과 (0.07ms, 30.1MB)
테스트 2 〉    통과 (0.10ms, 30MB)
테스트 3 〉    통과 (0.08ms, 30.1MB)
테스트 4 〉    통과 (0.08ms, 30.1MB)
테스트 5 〉    통과 (0.09ms, 30.1MB)
테스트 6 〉    통과 (0.09ms, 30.2MB)
테스트 7 〉    통과 (0.09ms, 30.1MB)
테스트 8 〉    통과 (0.08ms, 29.9MB)
테스트 9 〉    통과 (0.14ms, 30.2MB)
테스트 10 〉    통과 (0.10ms, 30MB)
테스트 11 〉    통과 (0.09ms, 30.2MB)
테스트 12 〉    통과 (0.08ms, 30.1MB)
테스트 13 〉    통과 (4.53ms, 33.3MB)&lt;/code&gt;&lt;/pre&gt;</description>
      <category>ALGORITHM/PROGRAMMERS</category>
      <author>thisisyjin</author>
      <guid isPermaLink="true">https://mywebproject.tistory.com/476</guid>
      <comments>https://mywebproject.tistory.com/476#entry476comment</comments>
      <pubDate>Sun, 10 Jul 2022 10:25:45 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스] 서울에서 김서방 찾기 - JavaScript</title>
      <link>https://mywebproject.tistory.com/475</link>
      <description>&lt;h1&gt;javascript&lt;/h1&gt;
&lt;h2&gt;문제 설명&lt;/h2&gt;
&lt;p&gt;String형 배열 seoul의 element중 &amp;quot;Kim&amp;quot;의 위치 x를 찾아, &amp;quot;김서방은 x에 있다&amp;quot;는 String을 반환하는 함수, solution을 완성하세요. seoul에 &amp;quot;Kim&amp;quot;은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.&lt;/p&gt;
&lt;h3&gt;제한 조건&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;seoul은 길이 1 이상, 1000 이하인 배열입니다.&lt;/li&gt;
&lt;li&gt;seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다.&lt;/li&gt;
&lt;li&gt;&amp;quot;Kim&amp;quot;은 반드시 seoul 안에 포함되어 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;예시&lt;/h3&gt;
&lt;p&gt;입출력 예&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;seoul             return
[&amp;quot;Jane&amp;quot;, &amp;quot;Kim&amp;quot;]     &amp;quot;김서방은 1에 있다&amp;quot;&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h2&gt;내가 작성한 코드&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;function solution(seoul) {
    return `김서방은 ${seoul.indexOf(&amp;#39;Kim&amp;#39;)}에 있다`;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;template literal을 이용함.&lt;br&gt;seoul 배열에서 &amp;#39;Kim&amp;#39;의 인덱스를 찾아 출력한다.&lt;/p&gt;
&lt;h2&gt;실행 결과&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;테스트 1 〉    통과 (0.05ms, 29.8MB)
테스트 2 〉    통과 (0.03ms, 30MB)
테스트 3 〉    통과 (0.08ms, 30MB)
테스트 4 〉    통과 (0.03ms, 30MB)
테스트 5 〉    통과 (0.03ms, 30MB)
테스트 6 〉    통과 (0.03ms, 30MB)
테스트 7 〉    통과 (0.03ms, 30.2MB)
테스트 8 〉    통과 (0.04ms, 30.1MB)
테스트 9 〉    통과 (0.03ms, 29.9MB)
테스트 10 〉    통과 (0.03ms, 30.1MB)
테스트 11 〉    통과 (0.03ms, 30.2MB)
테스트 12 〉    통과 (0.10ms, 30MB)
테스트 13 〉    통과 (0.04ms, 29.9MB)
테스트 14 〉    통과 (0.03ms, 30.1MB)&lt;/code&gt;&lt;/pre&gt;</description>
      <category>ALGORITHM/PROGRAMMERS</category>
      <author>thisisyjin</author>
      <guid isPermaLink="true">https://mywebproject.tistory.com/475</guid>
      <comments>https://mywebproject.tistory.com/475#entry475comment</comments>
      <pubDate>Sun, 10 Jul 2022 10:07:14 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스] 소수 찾기 - JavaScript</title>
      <link>https://mywebproject.tistory.com/474</link>
      <description>&lt;h1&gt;javascript&lt;/h1&gt;
&lt;h2&gt;문제 설명&lt;/h2&gt;
&lt;p&gt;1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요.&lt;/p&gt;
&lt;p&gt;소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다.&lt;br&gt;(1은 소수가 아닙니다.)&lt;/p&gt;
&lt;h3&gt;제한 조건&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;n은 2이상 1000000이하의 자연수입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;예시&lt;/h3&gt;
&lt;p&gt;입출력 예&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;n    result
10    4
5    3&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;입출력 예 설명&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;입출력 예 #1&lt;/strong&gt;&lt;br&gt;1부터 10 사이의 소수는 [2,3,5,7] 4개가 존재하므로 4를 반환&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;입출력 예 #2&lt;/strong&gt;&lt;br&gt;1부터 5 사이의 소수는 [2,3,5] 3개가 존재하므로 3를 반환&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;내가 작성한 코드&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;function isPrime (num) {
    for (let i=2; i&amp;lt;= Math.sqrt(num); i++) {
        if (num % i === 0) return false;
    }
    return true;
}

function solution(n) {
    let primeArr = [];
    for (let i=2; i&amp;lt;=n; i++) {
        if (isPrime(i)) primeArr.push(i);
    }
    return primeArr.length;
}&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;실행 결과&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;테스트 1 〉    통과 (0.05ms, 29.8MB)
테스트 2 〉    통과 (0.09ms, 30MB)
테스트 3 〉    통과 (0.17ms, 30.2MB)
테스트 4 〉    통과 (0.32ms, 29.9MB)
테스트 5 〉    통과 (0.22ms, 29.7MB)
테스트 6 〉    통과 (29.30ms, 32.9MB)
테스트 7 〉    통과 (21.83ms, 32.4MB)
테스트 8 〉    통과 (23.79ms, 32.6MB)
테스트 9 〉    통과 (26.48ms, 33.1MB)
테스트 10 〉    통과 (69.32ms, 34.1MB)
테스트 11 〉    통과 (242.06ms, 35.5MB)
테스트 12 〉    통과 (77.18ms, 34.2MB)&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;효율성 테스트&lt;pre&gt;&lt;code&gt;테스트 1 〉    통과 (278.24ms, 34.8MB)
테스트 2 〉    통과 (265.52ms, 34.6MB)
테스트 3 〉    통과 (263.26ms, 34.9MB)
테스트 4 〉    통과 (269.57ms, 34.8MB)&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;다른 코드&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12921/solution_groups?language=javascript&quot;&gt;출처&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;function solution(n) {
    const result = new Set();
    for(let i=1; i&amp;lt;=n; i+=2){
        result.add(i);
    }
    result.delete(1); // 1 제거
    result.add(2); // 2 추가

    for(let j=3; j&amp;lt;Math.sqrt(n); j++){
        if(result.has(j)){ // 이미 있는 거면
             for(let k=j*2; k&amp;lt;=n; k+=j){  // j*2 부터 n까지 j의 배수를
                result.delete(k);  // 제거함
             }
        }
    }
    return result.size; // 개수
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;Set&lt;/code&gt;을 이용한 풀이이다.&lt;br&gt;2의 배수는 소수가 아니므로, 1부터 n까지 +2씩 증가하면서 Set객체에 add한다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;p&gt;&lt;code&gt;set.add()&lt;/code&gt;, &lt;code&gt;set.delete()&lt;/code&gt;, &lt;code&gt;set.has()&lt;/code&gt;, &lt;code&gt;set.size()&lt;/code&gt; 메서드 이용.&lt;br&gt;여기서 set는 new Set()으로 선언한 Set객체임.&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;h3&gt;효율성 테스트&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;테스트 1 〉    통과 (175.70ms, 57.3MB)
테스트 2 〉    통과 (174.05ms, 56.8MB)
테스트 3 〉    통과 (175.32ms, 57.3MB)
테스트 4 〉    통과 (159.59ms, 57.4MB)&lt;/code&gt;&lt;/pre&gt;</description>
      <category>ALGORITHM/PROGRAMMERS</category>
      <author>thisisyjin</author>
      <guid isPermaLink="true">https://mywebproject.tistory.com/474</guid>
      <comments>https://mywebproject.tistory.com/474#entry474comment</comments>
      <pubDate>Sun, 10 Jul 2022 10:03:30 +0900</pubDate>
    </item>
  </channel>
</rss>