<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Harrylog</title>
    <link>https://1ncomparable.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Thu, 21 May 2026 03:15:57 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>해리Harry</managingEditor>
    <image>
      <title>Harrylog</title>
      <url>https://tistory1.daumcdn.net/tistory/4605899/attach/bd81d0831aad44909dd01f78193b188a</url>
      <link>https://1ncomparable.tistory.com</link>
    </image>
    <item>
      <title>[프로그래머스] 예산</title>
      <link>https://1ncomparable.tistory.com/494</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;문제 설명&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며, 1,000원보다 적은 금액을 지원해 줄 수는 없습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어질 때, 최대 몇 개의 부서에 물품을 지원할 수 있는지 return 하도록 solution 함수를 완성해주세요.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;제한사항&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;d는 부서별로 신청한 금액이 들어있는 배열이며, 길이(전체 부서의 개수)는 1 이상 100 이하입니다.&lt;/li&gt;
&lt;li&gt;d의 각 원소는 부서별로 신청한 금액을 나타내며, 부서별 신청 금액은 1 이상 100,000 이하의 자연수입니다.&lt;/li&gt;
&lt;li&gt;budget은 예산을 나타내며, 1 이상 10,000,000 이하의 자연수입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;입출력 예&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;d&amp;nbsp;&lt;/td&gt;
&lt;td&gt;budget&amp;nbsp;&lt;/td&gt;
&lt;td&gt;result&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[1,3,2,5,4]&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[2,2,3,3]&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;입출력 예 설명&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입출력 예 #1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 부서에서 [1원, 3원, 2원, 5원, 4원]만큼의 금액을 신청했습니다. 만약에, 1원, 2원, 4원을 신청한 부서의 물품을 구매해주면 예산 9원에서 7원이 소비되어 2원이 남습니다. 항상 정확히 신청한 금액만큼 지원해 줘야 하므로 남은 2원으로 나머지 부서를 지원해 주지 않습니다. 위 방법 외에 3개 부서를 지원해 줄 방법들은 다음과 같습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1원, 2원, 3원을 신청한 부서의 물품을 구매해주려면 6원이 필요합니다.&lt;/li&gt;
&lt;li&gt;1원, 2원, 5원을 신청한 부서의 물품을 구매해주려면 8원이 필요합니다.&lt;/li&gt;
&lt;li&gt;1원, 3원, 4원을 신청한 부서의 물품을 구매해주려면 8원이 필요합니다.&lt;/li&gt;
&lt;li&gt;1원, 3원, 5원을 신청한 부서의 물품을 구매해주려면 9원이 필요합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3개 부서보다 더 많은 부서의 물품을 구매해 줄 수는 없으므로 최대 3개 부서의 물품을 구매해 줄 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입출력 예 #2&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 부서의 물품을 구매해주면 10원이 됩니다. 따라서 최대 4개 부서의 물품을 구매해 줄 수 있습니다.&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;pre id=&quot;code_1741868117738&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function solution(d, budget) {
  // 최대 몇개의 부서에 물품을 지원할 수 있는지 구하기 
  let result = 0;
  d.sort((a, b)=&amp;gt;a-b)
  while (budget &amp;gt;= d[0]) {
    budget -= d[0];
    result += 1;
    d.shift();
  }
  return result;
}&lt;/code&gt;&lt;/pre&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;&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;&amp;nbsp;&lt;/p&gt;</description>
      <category>study/Algorithm</category>
      <author>해리Harry</author>
      <guid isPermaLink="true">https://1ncomparable.tistory.com/494</guid>
      <comments>https://1ncomparable.tistory.com/494#entry494comment</comments>
      <pubDate>Thu, 13 Mar 2025 21:18:55 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스] 같은 숫자는 싫어</title>
      <link>https://1ncomparable.tistory.com/493</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;문제 설명&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다.&lt;/li&gt;
&lt;li&gt;arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;제한사항&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;배열 arr의 크기 : 1,000,000 이하의 자연수&lt;/li&gt;
&lt;li&gt;배열 arr의 원소의 크기 : 0보다 크거나 같고 9보다 작거나 같은 정수&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;입출력 예&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;arr&amp;nbsp;&lt;/td&gt;
&lt;td&gt;answer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[1,1,3,3,0,1,1]&lt;/td&gt;
&lt;td&gt;[1,3,0,1]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[4,4,4,3,3]&lt;/td&gt;
&lt;td&gt;[4,3]&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;입출력 예 설명&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입출력 예 #1,2&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;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1741693663061&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function solution(arr) {  
  // stack으로 풀기
  const result = [arr[0]];

  for (let i = 1; i &amp;lt; arr.length; i++) {
    if (result[result.length - 1] !== arr[i]) {
      result.push(arr[i]);
    };
  }
  
  return result
}

// function solution(arr) {  
//   const result = [arr[0]]
//   for (let i = 1; i &amp;lt; arr.length; i++) {
//     if (arr[i-1] !== arr[i]) {
//       result.push(arr[i])
//     }
//   }
//   return result
// }&lt;/code&gt;&lt;/pre&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;스택은 마지막에 들어온 요소가 먼저 나가게 되는 후입선출 구조니까 result의 마지막 요소값과 현재 arr의 요소 값을 비교해서 추가할지 말지를 결정하게 함&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;별로 좋은 풀이는 아닌거같은데 지금 졸려서 뭘 못하겠음 나중에 다른 사람 풀이도 좀 찾아보려고 함&amp;nbsp;&lt;/p&gt;</description>
      <category>study/Algorithm</category>
      <author>해리Harry</author>
      <guid isPermaLink="true">https://1ncomparable.tistory.com/493</guid>
      <comments>https://1ncomparable.tistory.com/493#entry493comment</comments>
      <pubDate>Tue, 11 Mar 2025 20:50:04 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스] 문자열 다루기 기본</title>
      <link>https://1ncomparable.tistory.com/492</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;문제 설명&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 &quot;a234&quot;이면 False를 리턴하고 &quot;1234&quot;라면 True를 리턴하면 됩니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;제한 사항&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;s는 길이 1 이상, 길이 8 이하인 문자열입니다.&lt;/li&gt;
&lt;li&gt;s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;입출력 예&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;s&amp;nbsp;&lt;/td&gt;
&lt;td&gt;return&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&quot;a234&quot;&lt;/td&gt;
&lt;td&gt;false&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&quot;1234&quot;&lt;/td&gt;
&lt;td&gt;true&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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;pre id=&quot;code_1741531848096&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function solution(s) {
  if (s.length === 4 || s.length === 6) {
    return /^[0-9]+$/g.test(s)
  } 

  return false
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에는 조건에 맞으면 isNaN() 사용해서 숫자인지 문자인지 판별하려고 return !isNaN(s) 라고 작성했었는데 테스트 케이스 하나에서 실패가 떴다 ㅜ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;진짜 아무리 생각해도 무슨 엣지 케이스가 있을지 모르겠어서 질문 게시판을 뒤졌는데 어떤분이 '0x16' 이라고 반례를 들어주신게 있었음&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;22를 16진수로 쓰면 저렇게 되는데 isNaN이 저기에서 x를 문자로 인식하지 않고 저 자체로 숫자 22라고 해석해서 false가 나와야하는데 true가 나왔던거같음... 진짜 생각도 못했다 아무튼 그래서 그냥 정규식 쓰는걸로 코드 바꿈&amp;nbsp;&lt;/p&gt;</description>
      <category>study/Algorithm</category>
      <author>해리Harry</author>
      <guid isPermaLink="true">https://1ncomparable.tistory.com/492</guid>
      <comments>https://1ncomparable.tistory.com/492#entry492comment</comments>
      <pubDate>Sun, 9 Mar 2025 23:55:07 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스] 음양 더하기</title>
      <link>https://1ncomparable.tistory.com/491</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;문제 설명&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;제한사항&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;absolutes의 길이는 1 이상 1,000 이하입니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;absolutes의 모든 수는 각각 1 이상 1,000 이하입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;signs의 길이는 absolutes의 길이와 같습니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;signs[i]&amp;nbsp;가 참이면&amp;nbsp;absolutes[i]&amp;nbsp;의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;입출력 예&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;absolutes&amp;nbsp;&lt;/td&gt;
&lt;td&gt;signs&amp;nbsp;&lt;/td&gt;
&lt;td&gt;result&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[4,7,12]&lt;/td&gt;
&lt;td&gt;[true,false,true]&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[1,2,3]&lt;/td&gt;
&lt;td&gt;[false,false,true]&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;입출력 예 설명&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;입출력 예 #1&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;signs가&amp;nbsp;[true,false,true]&amp;nbsp;이므로, 실제 수들의 값은 각각 4, -7, 12입니다.&lt;/li&gt;
&lt;li&gt;따라서 세 수의 합인 9를 return 해야 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;입출력 예 #2&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;signs가&amp;nbsp;[false,false,true]&amp;nbsp;이므로, 실제 수들의 값은 각각 -1, -2, 3입니다.&lt;/li&gt;
&lt;li&gt;따라서 세 수의 합인 0을 return 해야 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1741078857125&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function solution(absolutes, signs) {
  return absolutes.reduce((acc,cur, idx)=&amp;gt;{
    if (signs[idx]) {
      return acc += cur
    } else {
      return acc -= cur
    }
  }, 0)
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;총합을 구해야하니까 reduce 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 현재 요소(cur)의 부호가 +라면 누적값에 현재 값을 더하고 -라면 누적값에서 현재 값을 빼줌&amp;nbsp;&lt;/p&gt;</description>
      <category>study/Algorithm</category>
      <author>해리Harry</author>
      <guid isPermaLink="true">https://1ncomparable.tistory.com/491</guid>
      <comments>https://1ncomparable.tistory.com/491#entry491comment</comments>
      <pubDate>Tue, 4 Mar 2025 18:02:59 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스] 정수 제곱근 판별</title>
      <link>https://1ncomparable.tistory.com/490</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;문제 설명&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;제한 사항&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;n은 1이상, 50000000000000 이하인 양의 정수입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;입출력 예&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;n&lt;/td&gt;
&lt;td&gt;return&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;121&lt;/td&gt;
&lt;td&gt;144&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;-1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;입출력 예 설명&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;입출력 예#1&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;입출력 예#2&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3은 양의 정수의 제곱이 아니므로, -1을 리턴합니다.&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;pre id=&quot;code_1741014212002&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function solution(n) {
  return Math.sqrt(n) % 1 === 0 ? (Math.sqrt(n) + 1) ** 2 : -1
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Math.sqrt() : 숫자의 제곱근 반환&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Math.sqrt() % 1 === 0 : 정수는 1로 나눈 나머지가 0. 만약 그렇지 않다면 실수(소숫점 이후의 숫자들이 있음). 실수라면 정수의 제곱이 아님&amp;nbsp;&lt;/p&gt;</description>
      <category>study/Algorithm</category>
      <author>해리Harry</author>
      <guid isPermaLink="true">https://1ncomparable.tistory.com/490</guid>
      <comments>https://1ncomparable.tistory.com/490#entry490comment</comments>
      <pubDate>Tue, 4 Mar 2025 00:04:50 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스] 정수 내림차순으로 배치하기</title>
      <link>https://1ncomparable.tistory.com/489</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;문제 설명&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;제한 조건&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;n은 1이상 8000000000 이하인 자연수입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;입출력 예&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;n&lt;/td&gt;
&lt;td&gt;return&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;118372&lt;/td&gt;
&lt;td&gt;873211&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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;pre id=&quot;code_1740488001207&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function solution(n) {
  return Number((n+'').split('').sort((a, b)=&amp;gt;b-a).join(''))
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>study/Algorithm</category>
      <author>해리Harry</author>
      <guid isPermaLink="true">https://1ncomparable.tistory.com/489</guid>
      <comments>https://1ncomparable.tistory.com/489#entry489comment</comments>
      <pubDate>Tue, 25 Feb 2025 21:53:24 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스] 나머지가 1이 되는 수 찾기</title>
      <link>https://1ncomparable.tistory.com/488</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;문제 설명&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자연수&amp;nbsp;n이 매개변수로 주어집니다.&amp;nbsp;n을&amp;nbsp;x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수&amp;nbsp;x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;제한사항&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;3 &amp;le;&amp;nbsp;n&amp;nbsp;&amp;le; 1,000,000&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;입출력 예&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;n&lt;/td&gt;
&lt;td&gt;result&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;입출력 예 설명&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;입출력 예 #1&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;10을 3으로 나눈 나머지가 1이고, 3보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 3을 return 해야 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;입출력 예 #2&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;12를 11로 나눈 나머지가 1이고, 11보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 11을 return 해야 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1740234862246&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function solution(n) {
  let num = 0;
  while (n % num !== 1) {
    num += 1
  }
  return num;
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>study/Algorithm</category>
      <author>해리Harry</author>
      <guid isPermaLink="true">https://1ncomparable.tistory.com/488</guid>
      <comments>https://1ncomparable.tistory.com/488#entry488comment</comments>
      <pubDate>Sat, 22 Feb 2025 23:34:25 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스] x만큼 간격이 있는 n개의 숫자</title>
      <link>https://1ncomparable.tistory.com/487</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;문제 설명&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;제한 조건&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;x는 -10000000 이상, 10000000 이하인 정수입니다.&lt;/li&gt;
&lt;li&gt;n은 1000 이하인 자연수입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;입출력 예&lt;/b&gt;&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;x&lt;/td&gt;
&lt;td&gt;n&lt;/td&gt;
&lt;td&gt;answer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;[2,4,6,8,10]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;[4,8,12]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-4&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;[-4, -8]&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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;pre id=&quot;code_1740149386155&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function solution(x, n) {
  const arr = [x];
  for (i = 0; i &amp;lt; n-1; i++) {
    arr.push(arr[i] + x);
  }
  return arr
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>study/Algorithm</category>
      <author>해리Harry</author>
      <guid isPermaLink="true">https://1ncomparable.tistory.com/487</guid>
      <comments>https://1ncomparable.tistory.com/487#entry487comment</comments>
      <pubDate>Fri, 21 Feb 2025 23:49:50 +0900</pubDate>
    </item>
    <item>
      <title>딥다이브 스터디 : 27장 배열</title>
      <link>https://1ncomparable.tistory.com/484</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;이번 챕터를 읽으면서 새로 알게 된 점 / 용어&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;밀집 배열과 희소 배열&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;밀집 배열 - 동일한 크기의 메모리 공간이 빈틈없이 연속적으로 나열된 자료구조&lt;/li&gt;
&lt;li&gt;희소 배열 - 메모리 공간 동일한 크기 아니어도 됨 + 연속적으로 이어지지 않아도 됨&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;배열 생성&lt;/h3&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;// 리터럴
const arr1 = [1, 2, 3];

// Array 생성자 함수
const arr2 = new Array(10) // [empty * 10]
const arr3 = new Array(1,2,3) // [1, 2, 3]

// Array.of &amp;lt; new!
Array.of(1, 2, 3); // [1, 2, 3]

// Array.from
Array.from({ length: 2, 0: 'a', 1: 'b' }); // ['a', 'b']
Array.from('Hello'); // ['H', 'e', 'l', 'l', 'o']
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Array.prototype.flat&lt;/h3&gt;
&lt;pre class=&quot;json&quot;&gt;&lt;code&gt;// 배열 평탄화하기 
// 생략할 경우 기본값 1, 중첩배열 전체 평탄화 할 경우 Infinity 넣어주기
[1, [2, [3, [4]]].flat() // [1, 2, [3, [4]]]
[1, [2, [3, [4]]].flat(Infinity) // [1, 2, 3, 4]
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;forEach&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;for문에 비해 성능 &amp;darr; 가독성 &amp;uarr;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;break, continue, return 사용할 수 없음 (for &amp;hellip; of 는 사용 가능)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요소가 매우 많은 배열의 순회, 복잡한 코드, 높은 성능이 필요하지 않은 경우 &amp;rArr; forEach 사용&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Array.prototype.flatMap&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;map + flat. 1단계만 평탄화함&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;이번 챕터를 읽으면서 내 코드에 적용해 볼 수 있을 것 같은점&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;조건에 대해 Array.some 또는 Array.every의 활용
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Array.some &amp;rarr; 배열 요소 중 콜백함수 반환값이 1번이라도 참이면 참 (OR)&lt;/li&gt;
&lt;li&gt;Array.every &amp;rarr; 배열 요소 중 콜백함수 반환값이 모두 참이어야 참 (AND)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;이번 챕터를 읽으면서 내가 잘못 사용하고 있거나 개선할 부분이 보이는 부분에 대해서 적기&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;for &amp;hellip; in / for &amp;hellip; of &amp;gt; for &amp;gt; forEach 순으로 잘 쓰는 편이었음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;forEach 대신 map 등으로 해결하는게 더 많았음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금 생각해보면 더 간단한 내용은 가독성을 위해서 forEach를 사용하는게 더 좋았을지도 모르겠다&lt;/p&gt;</description>
      <category>study/JavaScript</category>
      <author>해리Harry</author>
      <guid isPermaLink="true">https://1ncomparable.tistory.com/484</guid>
      <comments>https://1ncomparable.tistory.com/484#entry484comment</comments>
      <pubDate>Wed, 2 Oct 2024 16:03:39 +0900</pubDate>
    </item>
    <item>
      <title>[프로그래머스] 정수를 나선형으로 배치하기</title>
      <link>https://1ncomparable.tistory.com/483</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;문제 설명&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;양의 정수&amp;nbsp;n이 매개변수로 주어집니다.&amp;nbsp;n&amp;nbsp;&amp;times;&amp;nbsp;n&amp;nbsp;배열에 1부터&amp;nbsp;n2&amp;nbsp;까지 정수를 인덱스 [0][0]부터 시계방향 나선형으로 배치한 이차원 배열을 return 하는 solution 함수를 작성해 주세요.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;제한사항&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1 &amp;le;&amp;nbsp;n&amp;nbsp;&amp;le; 30&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;입출력 예&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;n&lt;/td&gt;
&lt;td&gt;result&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;[[1, 2, 3, 4], [12, 13, 14, 5], [11, 16, 15, 6], [10, 9, 8, 7]]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;[[1, 2, 3, 4, 5], [16, 17, 18, 19, 6], [15, 24, 25, 20, 7], [14, 23, 22, 21, 8], [13, 12, 11, 10, 9]]&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;입출력 예 설명&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입출력 예 #1&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예제 1번의 n의 값은 4로 4 &amp;times; 4 배열에 다음과 같이 1부터 16까지 숫자를 채울 수 있습니다.
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.4589%;&quot;&gt;행/열&lt;/td&gt;
&lt;td style=&quot;width: 19.4444%;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 19.686%;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 19.5652%;&quot;&gt;2&lt;/td&gt;
&lt;td style=&quot;width: 15.7005%;&quot;&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.4589%;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 19.4444%;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 19.686%;&quot;&gt;2&lt;/td&gt;
&lt;td style=&quot;width: 19.5652%;&quot;&gt;3&lt;/td&gt;
&lt;td style=&quot;width: 15.7005%;&quot;&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.4589%;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 19.4444%;&quot;&gt;12&lt;/td&gt;
&lt;td style=&quot;width: 19.686%;&quot;&gt;13&lt;/td&gt;
&lt;td style=&quot;width: 19.5652%;&quot;&gt;14&lt;/td&gt;
&lt;td style=&quot;width: 15.7005%;&quot;&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.4589%;&quot;&gt;2&lt;/td&gt;
&lt;td style=&quot;width: 19.4444%;&quot;&gt;11&lt;/td&gt;
&lt;td style=&quot;width: 19.686%;&quot;&gt;16&lt;/td&gt;
&lt;td style=&quot;width: 19.5652%;&quot;&gt;15&lt;/td&gt;
&lt;td style=&quot;width: 15.7005%;&quot;&gt;6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.4589%;&quot;&gt;3&lt;/td&gt;
&lt;td style=&quot;width: 19.4444%;&quot;&gt;10&lt;/td&gt;
&lt;td style=&quot;width: 19.686%;&quot;&gt;9&lt;/td&gt;
&lt;td style=&quot;width: 19.5652%;&quot;&gt;8&lt;/td&gt;
&lt;td style=&quot;width: 15.7005%;&quot;&gt;7&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
따라서 [[1, 2, 3, 4], [12, 13, 14, 5], [11, 16, 15, 6], [10, 9, 8, 7]]를 return 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입출력 예 #2&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예제 2번의 n의 값은 5로 5 &amp;times; 5 배열에 다음과 같이 1부터 25까지 숫자를 채울 수 있습니다.&amp;nbsp;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;행/열&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;18&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;24&lt;/td&gt;
&lt;td&gt;25&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;23&lt;/td&gt;
&lt;td&gt;22&lt;/td&gt;
&lt;td&gt;21&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
따라서 [[1, 2, 3, 4, 5], [16, 17, 18, 19, 6], [15, 24, 25, 20, 7], [14, 23, 22, 21, 8], [13, 12, 11, 10, 9]]를 return 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1727103479629&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function solution(n) {
  // n * n 배열을 0으로 채운 상태로 생성
  const arr = new Array(n).fill(0).map(() =&amp;gt; new Array(n).fill(0));
  
  let num = 1; // 채워넣을 숫자
  let top = 0, bottom = n - 1, left = 0, right = n - 1; // 경계를 나타내는 변수들
  
  while (top &amp;lt;= bottom &amp;amp;&amp;amp; left &amp;lt;= right) {
    // 1. 왼쪽에서 오른쪽으로 이동하며 숫자 채우기 (top row)
    for (let i = left; i &amp;lt;= right; i++) {
      arr[top][i] = num;
      num += 1;
    }
    top++; // top row는 다 채웠으니 위쪽 경계를 한 칸 아래로
    
    // 2. 위에서 아래로 이동하며 숫자 채우기 (right column)
    for (let i = top; i &amp;lt;= bottom; i++) {
      arr[i][right] = num;
      num += 1;
    }
    right--; // right column은 다 채웠으니 오른쪽 경계를 한 칸 왼쪽으로
    
    // 3. 오른쪽에서 왼쪽으로 이동하며 숫자 채우기 (bottom row)
    if (top &amp;lt;= bottom) { // 남은 row가 있는지 확인
      for (let i = right; i &amp;gt;= left; i--) {
        arr[bottom][i] = num;
        num += 1;
      }
      bottom--; // bottom row는 다 채웠으니 아래쪽 경계를 한 칸 위로
    }
    
    // 4. 아래에서 위로 이동하며 숫자 채우기 (left column)
    if (left &amp;lt;= right) { // 남은 column이 있는지 확인
      for (let i = bottom; i &amp;gt;= top; i--) {
        arr[i][left] = num;
        num += 1;
      }
      left++; // left column은 다 채웠으니 왼쪽 경계를 한 칸 오른쪽으로
    }
  }
  
  // 결과 출력
  return arr;
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>study/Algorithm</category>
      <author>해리Harry</author>
      <guid isPermaLink="true">https://1ncomparable.tistory.com/483</guid>
      <comments>https://1ncomparable.tistory.com/483#entry483comment</comments>
      <pubDate>Mon, 23 Sep 2024 23:58:03 +0900</pubDate>
    </item>
  </channel>
</rss>