<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>케이스윔의 개발 블로그</title>
    <link>https://kswims.tistory.com/</link>
    <description>틈틈이 개발 관련 포스팅을 남기는 블로그입니다(&amp;lowast;❛⌄❛&amp;lowast;)  궁금한 점과 잘못된 포스팅이 있다면 댓글을 남겨주세요!</description>
    <language>ko</language>
    <pubDate>Sat, 27 Jun 2026 15:33:23 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>kswim</managingEditor>
    <image>
      <title>케이스윔의 개발 블로그</title>
      <url>https://tistory1.daumcdn.net/tistory/2858655/attach/d7aa313ebb6b4030a0a61364504abedc</url>
      <link>https://kswims.tistory.com</link>
    </image>
    <item>
      <title>[Leetcode] 1768. Merge Strings Alternately</title>
      <link>https://kswims.tistory.com/226</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;문제 정의&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;word1, word2 가 주어질 때, word1 으로 시작하며 각 문자열을 더하며 하나의 문자열로 만들라. 하나의 문자가 다른 하나의 문자보다 길다면 합쳐진 문장 뒤에 붙여라!&lt;/span&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;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;각 문자열에서 하나씩 떼와서 하나의 긴 문자열을 만드는 문제인데.. 처음에는 word1, word2 둘 중에 더 긴 length() 를 확인하고 반복문으로 돌려고 했는데 그렇게까지 생각해버리니까 그럼 나중에 더 긴 문자열이 어떤지도 판단해줘야해서.. 번거로워졌다. 생각해보니까 그냥 반복문 조건을 둘 중 하나라도 남아있으면 계속 돌게하고 이미 머지에 문자를 다 소진한 경우는 char 접근해서 예외 발생하지 않게 해주면 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;오늘도 easy 여서 좋았다^^..&lt;/span&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;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;코드&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1681827891470&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Solution {
    public String mergeAlternately(String word1, String word2) {
        char[] splitedWord1 = word1.toCharArray();
        char[] splitedWord2 = word2.toCharArray();
        char[] result = new char[word1.length() + word2.length()];

        int idx = 0;
        for (int i = 0; i &amp;lt; word1.length() || i &amp;lt; word2.length(); i++) {
            if (i &amp;lt; word1.length()) {
                result[idx++] = splitedWord1[i];
            }
            if (i &amp;lt; word2.length()) {
                result[idx++] = splitedWord2[i];
            }
        }
        return new String(result);
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Algorithm</category>
      <category>leetcode</category>
      <category>릿코드</category>
      <category>알고리즘</category>
      <author>kswim</author>
      <guid isPermaLink="true">https://kswims.tistory.com/226</guid>
      <comments>https://kswims.tistory.com/226#entry226comment</comments>
      <pubDate>Tue, 18 Apr 2023 23:25:35 +0900</pubDate>
    </item>
    <item>
      <title>[Leetcode] 1431. Kids With the Greatest Number of Candies</title>
      <link>https://kswims.tistory.com/225</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;문제 정의&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;캔디를 가지고 있는 n개의 아이들이 있다. candies[i] 는 i번째 아이가 가지고 있는 캔디의 숫자이고, extraCandies 는 당신이 가지고 있는 캔디의 수다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;i번째 아이에게 extraCandies를 전부 다 준다고 했을 때, 그 아이가 모든 아이 중 가장 많은 캔디를 가지고 있는 것인지 result[i] 에 true/false를 담은 array를 반환하라.&lt;/span&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;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;a href=&quot;https://leetcode.com/problems/kids-with-the-greatest-number-of-candies/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://leetcode.com/problems/kids-with-the-greatest-number-of-candies/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1681740539758&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Kids With the Greatest Number of Candies - LeetCode&quot; data-og-description=&quot;Can you solve this real interview question? Kids With the Greatest Number of Candies - There are n kids with candies. You are given an integer array candies, where each candies[i] represents the number of candies the ith kid has, and an integer extraCandie&quot; data-og-host=&quot;leetcode.com&quot; data-og-source-url=&quot;https://leetcode.com/problems/kids-with-the-greatest-number-of-candies/&quot; data-og-url=&quot;https://leetcode.com/problems/kids-with-the-greatest-number-of-candies/description&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/uAeNY/hySi6txzX4/gK1KUEwPKs4rYAm64LP1S1/img.png?width=500&amp;amp;height=260&amp;amp;face=0_0_500_260,https://scrap.kakaocdn.net/dn/b2mr47/hySkXBKekt/SZTkWv83HmwKc5oWD23klK/img.png?width=924&amp;amp;height=222&amp;amp;face=0_0_924_222&quot;&gt;&lt;a href=&quot;https://leetcode.com/problems/kids-with-the-greatest-number-of-candies/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://leetcode.com/problems/kids-with-the-greatest-number-of-candies/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/uAeNY/hySi6txzX4/gK1KUEwPKs4rYAm64LP1S1/img.png?width=500&amp;amp;height=260&amp;amp;face=0_0_500_260,https://scrap.kakaocdn.net/dn/b2mr47/hySkXBKekt/SZTkWv83HmwKc5oWD23klK/img.png?width=924&amp;amp;height=222&amp;amp;face=0_0_924_222');&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;Kids With the Greatest Number of Candies - LeetCode&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Can you solve this real interview question? Kids With the Greatest Number of Candies - There are n kids with candies. You are given an integer array candies, where each candies[i] represents the number of candies the ith kid has, and an integer extraCandie&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;leetcode.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;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;역시 easy 문제ㅠ 오랜만에 푸는데 순간 sort 해야하는줄 알고 당황했는데 가장 큰값만 알고 있으면 candies[i] + extrasCandies 값이랑 max 값을 비교해주면 true/false 값을 판단할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;&quot;&gt;와 근데 다른 풀이보니까 Stream 으로 엄청 간단하게 풀었네.. 이렇게 좀 풀어봐야겠다.&lt;/span&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;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;코드&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1681740750757&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Solution {
    public List&amp;lt;Boolean&amp;gt; kidsWithCandies(int[] candies, int extraCandies) {
        int max = 0;

        for (int i=0; i&amp;lt;candies.length; i++) {
            if (max &amp;lt; candies[i]) {
                max = candies[i];
            }
        }
        List&amp;lt;Boolean&amp;gt; result = new ArrayList();

        for (int i=0; i&amp;lt;candies.length; i++) {
            if (candies[i] + extraCandies &amp;gt;= max) {
                result.add(true);
            } else {
                result.add(false);
            }
        }
        
        return result;
    
    }
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Algorithm</category>
      <category>leetcode</category>
      <category>릿코드</category>
      <category>알고리즘</category>
      <author>kswim</author>
      <guid isPermaLink="true">https://kswims.tistory.com/225</guid>
      <comments>https://kswims.tistory.com/225#entry225comment</comments>
      <pubDate>Mon, 17 Apr 2023 23:15:12 +0900</pubDate>
    </item>
    <item>
      <title>[Leetcode] 576. Out of Boundary Paths</title>
      <link>https://kswims.tistory.com/224</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;문제 정의&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;m * n 의 격자판과 공이 주어졌을 때, 공의 첫번째 위치가 주어진다. 한번 움직일 때 공을 인접한 4곳의 위치로 이동할 수 있다고 할 때 maxMove 번 동안 공을 움직일 수 있게 허용된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;m, n, startRow, startColumn, maxMove 가 주어질 때 격자판 밖으로 공을 나가게 할 수 있는 경로의 수를 구하고, 그 값은 매우 크기때문에 10의 9승 + 7 로 나눈 값을 반환하라.&amp;nbsp;&lt;/span&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;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;a href=&quot;https://leetcode.com/problems/out-of-boundary-paths/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://leetcode.com/problems/out-of-boundary-paths/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1657974741305&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Out of Boundary Paths - LeetCode&quot; data-og-description=&quot;Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.&quot; data-og-host=&quot;leetcode.com&quot; data-og-source-url=&quot;https://leetcode.com/problems/out-of-boundary-paths/&quot; data-og-url=&quot;https://leetcode.com/problems/out-of-boundary-paths/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cygA28/hyO7Gi0ECI/yqpvSO1MNnCKX8Eb8OceKk/img.png?width=500&amp;amp;height=260&amp;amp;face=0_0_500_260,https://scrap.kakaocdn.net/dn/c9esk2/hyO7w8xUlp/qUoSlBFN2RaEzjPaG2SLK0/img.png?width=827&amp;amp;height=489&amp;amp;face=0_0_827_489,https://scrap.kakaocdn.net/dn/doQev0/hyO5GkBqiY/Kv7ISOKTotvviLADYqYTXK/img.png?width=756&amp;amp;height=443&amp;amp;face=0_0_756_443&quot;&gt;&lt;a href=&quot;https://leetcode.com/problems/out-of-boundary-paths/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://leetcode.com/problems/out-of-boundary-paths/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cygA28/hyO7Gi0ECI/yqpvSO1MNnCKX8Eb8OceKk/img.png?width=500&amp;amp;height=260&amp;amp;face=0_0_500_260,https://scrap.kakaocdn.net/dn/c9esk2/hyO7w8xUlp/qUoSlBFN2RaEzjPaG2SLK0/img.png?width=827&amp;amp;height=489&amp;amp;face=0_0_827_489,https://scrap.kakaocdn.net/dn/doQev0/hyO5GkBqiY/Kv7ISOKTotvviLADYqYTXK/img.png?width=756&amp;amp;height=443&amp;amp;face=0_0_756_443');&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;Out of Boundary Paths - LeetCode&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;leetcode.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;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;처음에는 문제를 보고 어제 풀었던(&lt;span style=&quot;background-color: #ffffff; color: #212121;&quot;&gt;695&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #212121;&quot;&gt;.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #212121;&quot;&gt;Max Area of Island) 문제와 비슷하게 maxMove 만큼 bfs 탐색을 통해서 밖으로 공을 내보낼 수 있는 모든 경우를 탐색한다고 생각을 했다.&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #212121;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212121; font-family: 'Nanum Gothic';&quot;&gt;문제의 마지막 문장을 잘 읽어봤어야 했는데.. &lt;span style=&quot;background-color: #ffffff; color: #263238;&quot;&gt;&amp;nbsp;&lt;i&gt;Since the answer can be very large, return it&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;b&gt;modulo&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #263238;&quot;&gt;&amp;nbsp;&lt;/span&gt;10의 9승&amp;nbsp;+ 7&lt;/i&gt; =&amp;gt; 답이 매우 크기 때문에.. bfs 탐색으로 풀자마자 바로 시간초과가 발생했다.(73/94)&lt;/span&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;span style=&quot;background-color: #ffffff; color: #212121; font-family: 'Nanum Gothic';&quot;&gt;어떻게 해야 시간을 줄일 수 있을지 잘 감이 안와서 힌트를 열어봤는데 보자마자 DP 로 풀어야 하네? 싶었다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;i&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;Is traversing every path feasible? There are many possible paths for a small matrix. Try to optimize it.&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; font-family: 'Nanum Gothic';&quot;&gt;모든 경로를 탐색할 수 있는가? 작은 매트리스여도 가능한 많은 경로가 있다. 최적화 해라!&lt;/span&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;span style=&quot;background-color: #ffffff; color: #000000; font-family: 'Nanum Gothic';&quot;&gt;DP 의 기본이니 점화식을 세워야겠다고 생각했고, 3차원 배열을 활용했다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; font-family: 'Nanum Gothic';&quot;&gt;moves[n][i][j] = &lt;span style=&quot;color: #ee2323;&quot;&gt;n번의 움직임을 통해 (i, j) 위치에 도달할 수 있는 경우의 수&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; font-family: 'Nanum Gothic';&quot;&gt; = n-1번째의 (i, j) 좌표의 상하좌우에서 올 수 있기 때문에 인접한 4곳의 moves[n-1][a][b](a, b는 인접한 네 좌표의 좌표값) 의 합&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; font-family: 'Nanum Gothic';&quot;&gt;예시를 보면 알 수 있듯이 다른 좌표를 찍고 다시 원래의 좌표로 돌아갈 수 있기 때문에 visited 등은 고려하지 않아도 된다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; font-family: 'Nanum Gothic';&quot;&gt;위와 같이 점화식을 세워서 maxMove 까지 반복문을 통해 계산할 수 있다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; font-family: 'Nanum Gothic';&quot;&gt;계산을 하고 나면?! &lt;span style=&quot;color: #ee2323;&quot;&gt;2차원 배열들의 모든 가장자리 좌표는 한번 더 움직였을 때 밖으로 나갈 수 있는 경우의 수&lt;/span&gt;가 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; font-family: 'Nanum Gothic';&quot;&gt;maxMove 이전에 이미 밖으로 나갈 수도 있으니 이 모든 경우의 수를 다 더해주면 된다!&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; font-family: 'Nanum Gothic';&quot;&gt;그런데?????? 이렇게 값을 더해가면서도 10의 9승 + 7 로 값을 잘 나눠줘야한다. &lt;span style=&quot;color: #ee2323;&quot;&gt;경우의 수가 매우 크기 때문에 Int 범위를 벗어나는 경우가 생기고&lt;/span&gt;&amp;nbsp;오버플로우가 발생하면 구하고자 하는 값을 정상적으로 구할 수가 없다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; font-family: 'Nanum Gothic';&quot;&gt;오버플로우를 간과해서 87번까지 통과했다가 수정했는데도 91번까지만 통과해서 만들어진 moves 를 디버깅해보니 이 배열 자체에도 오버플로우가 있었어서 중간중간 모듈러 계산을 다 넣어서 보완해줬다. &lt;/span&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;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;정답 코드&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1657977299672&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Solution {
	public int findPaths(int m, int n, int maxMove, int startRow, int startColumn) {
		int[] rows = {0, 1, 0, -1};
		int[] cols = {-1, 0, 1, 0};

		int shout = 0;

		int[][][] moves = new int[maxMove + 1][m][n]; // [move][m][n] -&amp;gt; (m,n) 자리에 movew 번의 움직임으로 올 수 있는 경우의 수
		moves[0][startRow][startColumn] = 1; // start 지점은 0번째 move 로 올 수 있음

		for (int move = 1; move &amp;lt; maxMove; move++) {
			for (int i = 0; i &amp;lt; m; i++) {
				for (int j = 0; j &amp;lt; n; j++) {
					for (int a = 0; a &amp;lt; 4; a++) {
						if (i + rows[a] &amp;lt; 0 || i + rows[a] &amp;gt;= m || j + cols[a] &amp;lt; 0 || j + cols[a] &amp;gt;= n) {
							continue;
						}
						moves[move][i][j] =
							moves[move][i][j] % 1000000007 + moves[move - 1][i + rows[a]][j + cols[a]] % 1000000007;
					}
				}
			}
		}

		for (int move = 0; move &amp;lt; maxMove; move++) {
			for (int j = 0; j &amp;lt; m; j++) {
				shout = shout % 1000000007 + moves[move][j][0] % 1000000007;
				shout = shout % 1000000007 + moves[move][j][n - 1] % 1000000007;
			}
			for (int j = 0; j &amp;lt; n; j++) {
				shout = shout % 1000000007 + moves[move][0][j] % 1000000007;
				shout = shout % 1000000007 + moves[move][m - 1][j] % 1000000007;
			}
		}
		return shout % 1000000007;
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;BFS 로 푼 코드&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1657977345588&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Solution {
	int[] rows = {0, 1, 0, -1};
	int[] cols = {-1, 0, 1, 0};

	public int findPaths(int m, int n, int maxMove, int startRow, int startColumn) {
		Queue&amp;lt;Pair&amp;gt; queue = new LinkedList&amp;lt;&amp;gt;();
		int move = 1;
		int shout = 0;

		queue.add(new Pair(startRow, startColumn));
		while (!queue.isEmpty() &amp;amp;&amp;amp; move &amp;lt;= maxMove) {
			int size = queue.size();

			for (int i = 0; i &amp;lt; size; i++) {
				Pair curr = queue.remove();

				for (int j = 0; j &amp;lt; 4; j++) {
					int nextX = curr.x + rows[j];
					int nextY = curr.y + cols[j];
					if (nextX &amp;lt; 0 || nextY &amp;lt; 0 || nextX &amp;gt;= m || nextY &amp;gt;= n) {
						shout++;
						continue;
					}
					queue.add(new Pair(nextX, nextY));
				}
			}
			move++;
		}

		return shout % (1000000000 + 7);
	}

	class Pair {
		int x;
		int y;

		public Pair(int x, int y) {
			this.x = x;
			this.y = y;
		}

		public int getY() {
			return y;
		}

		public int getX() {
			return x;
		}
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2022-07-16 오후 9.31.53.png&quot; data-origin-width=&quot;1428&quot; data-origin-height=&quot;1140&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/smrPq/btrHrv42l0P/w7iJiKfqyVvHcEowUIKyw0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/smrPq/btrHrv42l0P/w7iJiKfqyVvHcEowUIKyw0/img.png&quot; data-alt=&quot;생각보다 어렵넹 ^0^&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/smrPq/btrHrv42l0P/w7iJiKfqyVvHcEowUIKyw0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsmrPq%2FbtrHrv42l0P%2Fw7iJiKfqyVvHcEowUIKyw0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;479&quot; data-filename=&quot;스크린샷 2022-07-16 오후 9.31.53.png&quot; data-origin-width=&quot;1428&quot; data-origin-height=&quot;1140&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;생각보다 어렵넹 ^0^&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Algorithm</category>
      <category>leetcode</category>
      <category>릿코드</category>
      <category>알고리즘</category>
      <author>kswim</author>
      <guid isPermaLink="true">https://kswims.tistory.com/224</guid>
      <comments>https://kswims.tistory.com/224#entry224comment</comments>
      <pubDate>Sat, 16 Jul 2022 22:23:43 +0900</pubDate>
    </item>
    <item>
      <title>[Leetcode] 102. Binary Tree Level Order Traversal</title>
      <link>https://kswims.tistory.com/223</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;문제 정의&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;root 가 주어졌을 때 레벨 순서대로 순회하며 각 노드의 값을 반환하라.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;a href=&quot;https://leetcode.com/problems/binary-tree-level-order-traversal/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://leetcode.com/problems/binary-tree-level-order-traversal&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1657719963951&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Binary Tree Level Order Traversal - LeetCode&quot; data-og-description=&quot;Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.&quot; data-og-host=&quot;leetcode.com&quot; data-og-source-url=&quot;https://leetcode.com/problems/binary-tree-level-order-traversal/&quot; data-og-url=&quot;https://leetcode.com/problems/binary-tree-level-order-traversal/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/brqiia/hyO4FTi7fO/DO6ZyDAtMEEC4znNyFYbT1/img.png?width=500&amp;amp;height=260&amp;amp;face=0_0_500_260,https://scrap.kakaocdn.net/dn/ohtm4/hyO4I3zdrD/VLev4Jph1ItwM7T65cEHG0/img.jpg?width=277&amp;amp;height=302&amp;amp;face=0_0_277_302&quot;&gt;&lt;a href=&quot;https://leetcode.com/problems/binary-tree-level-order-traversal/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://leetcode.com/problems/binary-tree-level-order-traversal/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/brqiia/hyO4FTi7fO/DO6ZyDAtMEEC4znNyFYbT1/img.png?width=500&amp;amp;height=260&amp;amp;face=0_0_500_260,https://scrap.kakaocdn.net/dn/ohtm4/hyO4I3zdrD/VLev4Jph1ItwM7T65cEHG0/img.jpg?width=277&amp;amp;height=302&amp;amp;face=0_0_277_302');&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;Binary Tree Level Order Traversal - LeetCode&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;leetcode.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;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;풀이&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;어제 문제 마저 못풀고 오늘 풀이 쓰기가 살짝 찝찝하지만.. 쉬운 문제라서 먼저 풀었다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;이틀 전 풀었던 문제에서는 각 레벨의 가장 오른쪽 노드값을 차례대로 출력하면 되었는데 오늘 문제는 각 레벨별로 노드의 값을 하나의 List씩 만들어서 List&amp;lt;List&amp;lt;Integer&amp;gt; 를 반환하는 문제이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;Queue에 자식노드를 추가하면서 레벨 노드를 탐색할 수 있다. 자식 노드를 추가하기 전의&lt;b&gt; 큐의 size는 &lt;/b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;해당하는 depth에 존재하는 노드개수&lt;/span&gt;이므로, 그 size만큼 반복문을 돌면서 노드의 값을 List로 만들어준다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1657720586486&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Solution {
        public List&amp;lt;List&amp;lt;Integer&amp;gt;&amp;gt; levelOrder(TreeNode root) {
            List&amp;lt;List&amp;lt;Integer&amp;gt;&amp;gt; result = new ArrayList&amp;lt;&amp;gt;();
            Queue&amp;lt;TreeNode&amp;gt; nodeQueue = new LinkedList&amp;lt;&amp;gt;();

            if (root == null) {
                return result;
            }
            nodeQueue.add(root);

            TreeNode curr;
            while(!nodeQueue.isEmpty()) {
                int size = nodeQueue.size();

                List&amp;lt;Integer&amp;gt; nodeList = new ArrayList&amp;lt;&amp;gt;();
                for (int i=0; i&amp;lt;size; i++) {
                    curr = nodeQueue.remove();

                    nodeList.add(curr.val);
                    if (curr.left != null) {
                        nodeQueue.add(curr.left);
                    }
                    if (curr.right != null) {
                        nodeQueue.add(curr.right);
                    }
                }
                result.add(nodeList);
            }
            return result;

        }
    }&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;binaryTreeLevelOrder.png&quot; data-origin-width=&quot;645&quot; data-origin-height=&quot;669&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dIpIpU/btrHbUFx7u0/j25vwKjKKnVhK0nKYwuuz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dIpIpU/btrHbUFx7u0/j25vwKjKKnVhK0nKYwuuz0/img.png&quot; data-alt=&quot;쉬운 문제지만 한번에 풀면 기분 좋아^0^&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dIpIpU/btrHbUFx7u0/j25vwKjKKnVhK0nKYwuuz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdIpIpU%2FbtrHbUFx7u0%2Fj25vwKjKKnVhK0nKYwuuz0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;415&quot; data-filename=&quot;binaryTreeLevelOrder.png&quot; data-origin-width=&quot;645&quot; data-origin-height=&quot;669&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;쉬운 문제지만 한번에 풀면 기분 좋아^0^&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Algorithm</category>
      <category>leetcode</category>
      <category>릿코드</category>
      <category>알고리즘</category>
      <author>kswim</author>
      <guid isPermaLink="true">https://kswims.tistory.com/223</guid>
      <comments>https://kswims.tistory.com/223#entry223comment</comments>
      <pubDate>Wed, 13 Jul 2022 22:57:15 +0900</pubDate>
    </item>
    <item>
      <title>[Leetcode] 199. Binary Tree Right Side View</title>
      <link>https://kswims.tistory.com/222</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;문제정의&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;binary tree의 root가 주어졌을 때, 오른쪽 측면에 서있다고 상상하고 위에서부터 아래로 차례대로 볼 수 있는 노드의 값을 반환하라.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;a href=&quot;https://leetcode.com/problems/binary-tree-right-side-view/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://leetcode.com/problems/binary-tree-right-side-view/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1657582724048&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Binary Tree Right Side View - LeetCode&quot; data-og-description=&quot;Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.&quot; data-og-host=&quot;leetcode.com&quot; data-og-source-url=&quot;https://leetcode.com/problems/binary-tree-right-side-view/&quot; data-og-url=&quot;https://leetcode.com/problems/binary-tree-right-side-view/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bol16p/hyO4BBVaQi/fzIEcoTk1UWAxZKIlz5TrK/img.png?width=500&amp;amp;height=260&amp;amp;face=0_0_500_260,https://scrap.kakaocdn.net/dn/bX9ZZv/hyO3vpOCeK/YIYDOXCe5qSVRcxus55MN1/img.jpg?width=401&amp;amp;height=301&amp;amp;face=0_0_401_301&quot;&gt;&lt;a href=&quot;https://leetcode.com/problems/binary-tree-right-side-view/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://leetcode.com/problems/binary-tree-right-side-view/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bol16p/hyO4BBVaQi/fzIEcoTk1UWAxZKIlz5TrK/img.png?width=500&amp;amp;height=260&amp;amp;face=0_0_500_260,https://scrap.kakaocdn.net/dn/bX9ZZv/hyO3vpOCeK/YIYDOXCe5qSVRcxus55MN1/img.jpg?width=401&amp;amp;height=301&amp;amp;face=0_0_401_301');&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;Binary Tree Right Side View - LeetCode&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;leetcode.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;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;처음엔 너무 단순하게 생각해서 root를 시작점으로 오른쪽 노드만 탐색하는 재귀함수를 짰다가 바로 틀려버렸다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;틀린 테스트 케이스가 [1, 2, 3, 4]였는데 [1, 3, 4]를 출력하지 않고, [1, 3] 만 출력하고 있었다.(값인 2인 노드는 1의 왼쪽 노드이기 때문에 탐색하지 않았음)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;너무 잠오는 와중에 풀어서 쉽게 생각했구나.. 하고 씻으러 갔다가 문제의 핵심은 &lt;span style=&quot;color: #ee2323;&quot;&gt;오른쪽 측면&lt;/span&gt;에서 볼 수 있는 값이기 때문에 &lt;span style=&quot;color: #ee2323;&quot;&gt;각 depth별로 가장 오른쪽의 노드 값&lt;/span&gt;을 찾아야함을 깨달았다. 그리고 가장 오른쪽 노드의 값이라고 해서 &lt;u&gt;항상 그 노드가 부모의 오른쪽 노드가 아니라는 것!&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;Queue를 활용해서 각 depth별로 TreeNode를 넣고, depth의 가장 마지막 value를 정답 배열에 추가해준다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1657582561755&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;    class Solution {
        
        public List&amp;lt;Integer&amp;gt; rightSideView(TreeNode root) {
            List&amp;lt;Integer&amp;gt; result = new ArrayList&amp;lt;&amp;gt;();
            if (root == null) {
                return result;
            }

            Queue&amp;lt;TreeNode&amp;gt; queue = new LinkedList&amp;lt;&amp;gt;();
            queue.add(root);

            while(!queue.isEmpty()) {
                int size = queue.size();

                TreeNode curr = new TreeNode();
                for (int i=0; i&amp;lt;size; i++) {
                    curr = queue.poll();
                    
                    if (curr.right != null) {
                        queue.add(curr.right);
                    } else if (curr.left != null){
                        queue.add(curr.left);
                    }
                }
                result.add(curr.val);

            }
            return result;
        }
    }&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Algorithm</category>
      <category>leetcode</category>
      <category>릿코드</category>
      <category>알고리즘</category>
      <author>kswim</author>
      <guid isPermaLink="true">https://kswims.tistory.com/222</guid>
      <comments>https://kswims.tistory.com/222#entry222comment</comments>
      <pubDate>Tue, 12 Jul 2022 08:38:53 +0900</pubDate>
    </item>
    <item>
      <title>[Leetcode] 746. Min Cost Climbing Stairs</title>
      <link>https://kswims.tistory.com/221</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;문제 정의&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;i번째 step 에 대한 cost 가 들어있는 integer array인 cost가 주어지고, cost를 지불하면 1번 또는 2번의 step을 이동할 수 있다. 0 혹은 1의 인덱스에서 시작할 수 있을 때 top을 가기 위한 최소한의 cost를 구하라.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://leetcode.com/problems/min-cost-climbing-stairs/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://leetcode.com/problems/min-cost-climbing-stairs/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1657582760766&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Min Cost Climbing Stairs - LeetCode&quot; data-og-description=&quot;Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.&quot; data-og-host=&quot;leetcode.com&quot; data-og-source-url=&quot;https://leetcode.com/problems/min-cost-climbing-stairs/&quot; data-og-url=&quot;https://leetcode.com/problems/min-cost-climbing-stairs/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Be4hj/hyO4NbhhsL/A1L5XJu3Mh9p3sdXnkohFK/img.png?width=500&amp;amp;height=260&amp;amp;face=0_0_500_260&quot;&gt;&lt;a href=&quot;https://leetcode.com/problems/min-cost-climbing-stairs/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://leetcode.com/problems/min-cost-climbing-stairs/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Be4hj/hyO4NbhhsL/A1L5XJu3Mh9p3sdXnkohFK/img.png?width=500&amp;amp;height=260&amp;amp;face=0_0_500_260');&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;Min Cost Climbing Stairs - LeetCode&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;leetcode.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;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;보자마자 dp 로 풀면 되겠다고 생각이 들었다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;간단하게 점화식을 세워볼 수 있다. minCost[i] 는&lt;span style=&quot;color: #ee2323;&quot;&gt; i번째까지 도달하기 위한 최소한의 cost&lt;/span&gt;를 담는다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;i=0 or 1 -&amp;gt; minCost[i] = cost[i]&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;i &amp;gt; 1 -&amp;gt; minCost[i] = min(minCost[i-1], minCost[i-2]) + cost[i];&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;0 혹은 1부터 시작할 수 있다고 하였으니 첫 스탭은 cost[i] 그대로의 값이 최소한의 cost 이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;minCost[i]에 i번째까지의 최소한의 cost를 구하기 위해서, i로 올 수 있는 방법은&lt;u&gt; i-1번째 혹은 i-2번째 인덱스에서 올 수 있다.&lt;/u&gt; minCost[i-1]에는 i-1번째까지 오기 위한 최소한의 cost가 담겨있고, minCost[i-2]에는 i-2번째까지 오기 위한 최소한의 cost가 담겨있으니 둘 중 작은 값에 cost[i]를 더해주면 i번째까지 오기 위한 최소한의 cost가 계산된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;최종적으로 원하는 값은 top 까지 가기 위한 최소한의 cost이므로 cost 배열의 가장 끝인덱스 혹은 끝인덱스-1번째의 cost 중 작은 값이 정답이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1657435532373&quot; class=&quot;angelscript&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Solution {
    public int minCostClimbingStairs(int[] cost) {
        int size = cost.length;
        int[] minCost = new int[size + 1];
        
        minCost[0] = cost[0];
        minCost[1] = cost[1];
        
        for (int i=2; i &amp;lt; size; i++) {
            minCost[i] = Math.min(minCost[i-1], minCost[i-2]) + cost[i];    
        }
        return Math.min(minCost[size-2], minCost[size-1]);
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;minCost.png&quot; data-origin-width=&quot;1214&quot; data-origin-height=&quot;279&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cv5LPq/btrGUsBs9mw/pQoVsQto10QhOGg8RwvxdK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cv5LPq/btrGUsBs9mw/pQoVsQto10QhOGg8RwvxdK/img.png&quot; data-alt=&quot;오랜만에 알고리즘 푸니까 재밌넹 ^0^ ㅎㅎㅎ&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cv5LPq/btrGUsBs9mw/pQoVsQto10QhOGg8RwvxdK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcv5LPq%2FbtrGUsBs9mw%2FpQoVsQto10QhOGg8RwvxdK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1214&quot; height=&quot;279&quot; data-filename=&quot;minCost.png&quot; data-origin-width=&quot;1214&quot; data-origin-height=&quot;279&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;오랜만에 알고리즘 푸니까 재밌넹 ^0^ ㅎㅎㅎ&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Algorithm</category>
      <category>DP</category>
      <category>leetcode</category>
      <category>릿코드</category>
      <category>알고리즘</category>
      <author>kswim</author>
      <guid isPermaLink="true">https://kswims.tistory.com/221</guid>
      <comments>https://kswims.tistory.com/221#entry221comment</comments>
      <pubDate>Sun, 10 Jul 2022 15:47:48 +0900</pubDate>
    </item>
    <item>
      <title>[github] Actions - workflows 를 자동화/개인화/실행 하다. (1)</title>
      <link>https://kswims.tistory.com/217</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;github 에서는 &lt;b&gt;Action&lt;/b&gt; 이라는 기능을 제공한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;공식 도큐먼트는 쉽고, 바로 따라해볼 수 있는 Quick start 도 제공한다.&lt;/span&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;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;간단히 개념을 파악하고 따라해보자!&lt;/span&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;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;Github Action&lt;/b&gt; 이란?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;github 저장소를 기반으로 소프트웨어 workflow를 자동화, 개인화, 실행 할 수 있는 도구&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;빌드, 테스트, 릴리즈 또는 배포를 할 수 있도록 자동화할 수 있는 일종의 hook 서비스이다.&lt;/span&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;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;&quot;&gt;Action을 사용하려면 아래의 용어들이 함께 사용되고, Github에서 제공하는 Action 기능과 그 하위 용어들의 의미를 내가 이해한대로 정리하였다.&lt;/span&gt;&lt;span style=&quot;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;Action&lt;/span&gt;&lt;/b&gt;: Github에서 복잡하지만 반복되는 작업을 custom 하게 application 으로 만든 것&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;workflow&lt;/span&gt;&lt;/b&gt;: yaml 파일로 정의할 수 있다. 정해진대로 수행하거나, 스케줄에 따라 수행이 가능하다. &lt;/span&gt;repository의 특정 event 를 통해서 발생시킬 수 있고, 하나의 repository에는 여러개의 workflow가 있을 수 있다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;Event&lt;/span&gt;&lt;/b&gt;&lt;b&gt;:&lt;/b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt; workflow를 실행시킬 수 있는 특정한 활동 &lt;/span&gt;ex) PR, issue 생성 or Rest API 를 통해 특정한 시간에 trigger 할 수 있다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;Job&lt;/span&gt;&lt;/b&gt;&lt;b&gt;:&lt;/b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt; 같은 runner 안에서 수행되는 step 의 set, step 들은 각각 독립적으로 수행된다.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; letter-spacing: 0px;&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;Runner&lt;/b&gt;&lt;/span&gt;: trigger 된 workflow가 실행되는 서버. 각 runnver는 하나의 job을 실행한다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&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;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;=&amp;gt; Action의 &lt;b&gt;workflow&lt;/b&gt;는 repository의 특정 이벤트를 통해 발생시킬 수 있고, workflow는 하나 이상의 job으로 구성되어 있다. &lt;b&gt;job&lt;/b&gt;은 순차적 or 병렬적으로 실행될 수 있으며, 각각 하나의 가상 runner machine 안에서 수행된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;job 안에는 workflow를 간단히 할 수 있는 하나 이상의 &lt;b&gt;step&lt;/b&gt; 으로 구성된다.&lt;/span&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;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;출처&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;a href=&quot;https://docs.github.com/en/actions&quot;&gt;https://docs.github.com/en/actions&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;a href=&quot;https://docs.github.com/en/actions/quickstart&quot;&gt;https://docs.github.com/en/actions/quickstart&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>Study</category>
      <category>github</category>
      <category>GithubAction</category>
      <category>깃허브</category>
      <author>kswim</author>
      <guid isPermaLink="true">https://kswims.tistory.com/217</guid>
      <comments>https://kswims.tistory.com/217#entry217comment</comments>
      <pubDate>Sun, 13 Mar 2022 19:59:40 +0900</pubDate>
    </item>
    <item>
      <title>[JAVA] classpath 를 알아보자</title>
      <link>https://kswims.tistory.com/216</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;classpath&lt;/b&gt;란 무엇인가? &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;(class search path 라고 하기도 한다고 함)&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;말그대로 클래스를 찾기 위한 경로&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;JVM이 프로그램을 실행할 때 클래스 파일을 찾기 위한 기준이 되는 파일 경로&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;자바 런타임 환경에서 클래스와 다른 리소스 파일을 찾기위한 파일 경로&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&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;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;사용법(?)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;JDK tool에 의해서 &lt;b&gt;-classpath&lt;/b&gt; 옵션을 셋팅하거나, &lt;b&gt;CLASSPATH&lt;/b&gt; 환경변수를 통해 셋팅할 수 있다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;-classpath 옵션을 사용하면 다른 어플리케이션에 영향을 주지 않고 각 어플리케이션 각각 셋팅을 할 수 있어서 더욱 선호되는 방법이다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1645334650815&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sdkTool -classpath classpath1;classpath2...

set CLASSPATH=classpath1;classpath2...&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;i&gt;sdkTool:&lt;/i&gt; command-line tool 예를 들어 java, javac, apt ...&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;i&gt;classpath1;classpath2;.. :&lt;/i&gt; .jar, .zip 또는 .class 파일의 파일 경로를 의미&lt;/span&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;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;경로는 어떻게 표기하는가?&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;.class 파일을 포함하고 있는 .jar, .zip파일일 경우에는 classpath는 .zip 이나 .jar 파일이름이어야 한다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;.class 파일을 포함하고 있는 패키지가 없는 파일일 경우에는 파일 경로는 .class 파일을 포함하고 있는 디렉토리명으로 표기한다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;.class 파일을 포함하고 있는 이름이 있는 패키지의 파일이라면 root 패키지를 포함하고 있는 파일 경로로 표기한다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;디폴트 classpath는 현재 디렉토리이다. 환경변수나 옵션을 사용하게 되면 이 디폴트 설정이 override 되기 때문에 현재 디렉토리를 포함하고 싶다면 &quot;.&quot; 을 새로운 셋팅에 포함해야한다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;너무나 인텔리제이 환경에서 개발하는게 익숙해진 나머지.. 오랜만에 커맨드라인으로 이것저것 실행하다가 classpath 를 간단히 정리해보았는데 아래의 공식 도큐먼트를 직접 읽어보면 더 이해가 쉬울 수 있다!&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;a href=&quot;https://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1645356442009&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Setting the class path&quot; data-og-description=&quot;Setting the class path Synopsis The class path is the path that the Java runtime environment searches for classes and other resource files. The class search path (more commonly known by the shorter name, &amp;quot;class path&amp;quot;) can be set using either the -classpath&quot; data-og-host=&quot;docs.oracle.com&quot; data-og-source-url=&quot;https://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html&quot; data-og-url=&quot;https://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html&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;Setting the class path&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Setting the class path Synopsis The class path is the path that the Java runtime environment searches for classes and other resource files. The class search path (more commonly known by the shorter name, &quot;class path&quot;) can be set using either the -classpath&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.oracle.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;</description>
      <category>Study</category>
      <category>classpath</category>
      <category>Java</category>
      <category>jvm</category>
      <author>kswim</author>
      <guid isPermaLink="true">https://kswims.tistory.com/216</guid>
      <comments>https://kswims.tistory.com/216#entry216comment</comments>
      <pubDate>Sun, 20 Feb 2022 20:29:40 +0900</pubDate>
    </item>
    <item>
      <title>[도서리뷰] AI로 일하는 기술(저자 장동인)</title>
      <link>https://kswims.tistory.com/215</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;580&quot; data-origin-height=&quot;580&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xgACh/btrtIkQXb4e/cLB1NXVB9jBUHwyyXgpvP0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xgACh/btrtIkQXb4e/cLB1NXVB9jBUHwyyXgpvP0/img.png&quot; data-alt=&quot;깔끔쓰한 책 표지&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xgACh/btrtIkQXb4e/cLB1NXVB9jBUHwyyXgpvP0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxgACh%2FbtrtIkQXb4e%2FcLB1NXVB9jBUHwyyXgpvP0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;580&quot; height=&quot;580&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;580&quot; data-origin-height=&quot;580&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;깔끔쓰한 책 표지&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;책 제목에서 알 수 있다시피 &lt;b&gt;AI, 인공지능에 대한 이야기&lt;/b&gt;를 담고 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;불과 몇년만에 AI, 인공지능이라는 단어는 누구나 들어보고 관심을 가질법한 단어가 되었다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;사실 내 블로그에는 모두를 위한 딥러닝 이라는 카테고리가 있고, &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;기술적인 부분에도 관심을 가지고 공부를 했었지만 (이런저런 이유로..) 맛보기로 접했던 분야라고 할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;이후로도 인공지능에 관심자체는 있었지만, 나의 업무와 큰 관계가 없다는 생각을 하였기 때문에..&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;내 머릿속 우선순위에 없었고 접할 기회도 많지 않았다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;그러다! 좋은 기회로 이 책을 접할 수 있게 되었다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;전체적으로 읽어보았을 때, 나는 전공자이긴 하지만 &lt;b&gt;비전공자가 읽더라도 잘 이해될 수 있는 수준&lt;/b&gt;이었다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;u&gt;인공지능이란 단어의 유래부터 거슬러 올라가는 서론이 흥미로웠다.&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;갑자기 핫해진 분야라고 생각했는데 역사가 1950년대부터 시작이었다는 것도! 꽤 오랜 역사의 내용들이 신기했다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20220219_140432347.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;3024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lN1Z0/btrtH0Fel6q/cadXPBWhjcMHFH8QYKrLY0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lN1Z0/btrtH0Fel6q/cadXPBWhjcMHFH8QYKrLY0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lN1Z0/btrtH0Fel6q/cadXPBWhjcMHFH8QYKrLY0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlN1Z0%2FbtrtH0Fel6q%2FcadXPBWhjcMHFH8QYKrLY0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;450&quot; height=&quot;450&quot; data-filename=&quot;KakaoTalk_20220219_140432347.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;3024&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;목차를 보면 각 챕터/소제목은 하나의 질문으로 이루어져있고, 질문마다 답을 해결해나가는 방식으로 기술되었다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;i&gt;&quot;인공지능이 뭔가요?&quot;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;i&gt;&quot;인공지능이 사람을 지배하는 세상이 올까요?&quot;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;i&gt;&quot;요즘 뜨는 메타버스와 NFT는 인공지능과 어떤 관련이 있을까요?&quot;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;인공지능이 무엇인가를 개념적으로 설명해주는 첫번째 챕터를 제외하고는 &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;꼭 차례대로 읽지 않아도 궁금한 부분들을 골라서 먼저 읽어보아도 이해가 잘 되었고, &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;비슷한 질문들끼리 묶여있는 챕터를 전부 읽으면 좀 더 이해가 풍부해지는 느낌이 들었다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;그 중 재밌었던 질문은 &lt;u&gt;&quot;인공지능 주식 트레이더를 믿어도 될까요?&quot;&lt;/u&gt;였다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;580&quot; data-origin-height=&quot;580&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cb8T8a/btrtNQ8Hekc/SJYXJvqgFMYRYx9e62OEYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cb8T8a/btrtNQ8Hekc/SJYXJvqgFMYRYx9e62OEYk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cb8T8a/btrtNQ8Hekc/SJYXJvqgFMYRYx9e62OEYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcb8T8a%2FbtrtNQ8Hekc%2FSJYXJvqgFMYRYx9e62OEYk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;450&quot; height=&quot;450&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;580&quot; data-origin-height=&quot;580&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;주가에 대한 히스토리들은 많기도 하고.. 학습된 데이터를 통해 투자하면 돈 벌 수 있을까? 생각해본적은 있었는데(ㅎㅎ)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;내부적/외부적 변동성이 큰 주가는 학습하고 추측하여 돈 벌기는 (아직) 어려운 것으로.. 납득했다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;(요 내용은 SBS 신년특집 세기의 대결 AI vs 인간 의 결과를 참고할 수 있다.)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;질문들을 잘 살펴보면 &lt;i&gt;이런것도 질문이 될 수 있나?&lt;/i&gt; 할만큼 쉬운 질문도 많고, &lt;i&gt;이런걸 물어봐도 될까? &lt;/i&gt;하는 질문들도 많다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;설명도 쉽고, 이 분야에 대해 &lt;span style=&quot;color: #ee2323;&quot;&gt;처음 관심을 가지는 사람이라면 개념기반을 다질 수 있는 책&lt;/span&gt;이라고 생각이 든다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;나도 항상 기술적으로, 코드적으로만 접하려고 했어서 인공지능이 더 어렵게 느껴지곤 했었는데&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;인공지능의 전반적인 궁금증들을 해소할 수 있어서 좋았다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;한빛미디어 &amp;lt;나는 리뷰어다&amp;gt; 활동을 위해서 책을 제공받아 작성된 서평입니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>Study</category>
      <category>AI로일하는기술</category>
      <category>서평</category>
      <category>한빛미디어</category>
      <author>kswim</author>
      <guid isPermaLink="true">https://kswims.tistory.com/215</guid>
      <comments>https://kswims.tistory.com/215#entry215comment</comments>
      <pubDate>Sat, 19 Feb 2022 14:09:36 +0900</pubDate>
    </item>
    <item>
      <title>[JAVA] new ArrayList(); vs Lists.newArrayList();  뭘 써야할까?</title>
      <link>https://kswims.tistory.com/214</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;1.&amp;nbsp; new ArrayList();&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;ArrayList 클래스의 생성자 내부는 아래와 같다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1645014512125&quot; class=&quot;cpp&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public ArrayList() {
	this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;
}&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;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;2. Lists.newArrayList();&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;Lists 클래스의 Lists.newArrayList(); 을 사용하면 &lt;u&gt;결국 내부에서 new ArrayList(); 를 호출&lt;/u&gt;한다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1645014512126&quot; class=&quot;haxe&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public static &amp;lt;E&amp;gt; ArrayList&amp;lt;E&amp;gt; newArrayList() {
	return new ArrayList();
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;Guava 코드(Guava는 구글이 작성한 자바 오픈소스 라이브러리)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;a href=&quot;https://github.com/google/guava/blob/65f6b4f4b132a051616403bcf74e4034a19d92a1/guava/src/com/google/common/collect/Lists.java#L86&quot;&gt;https://github.com/google/guava/blob/65f6b4f4b132a051616403bcf74e4034a19d92a1/guava/src/com/google/common/collect/Lists.java#L86&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1645014512127&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - google/guava: Google core libraries for Java&quot; data-og-description=&quot;Google core libraries for Java. Contribute to google/guava development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/google/guava/blob/65f6b4f4b132a051616403bcf74e4034a19d92a1/guava/src/com/google/common/collect/Lists.java#L86&quot; data-og-url=&quot;https://github.com/google/guava&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cXD8Cx/hyNqEWhzgR/dnksdS9Z8EePIDkV6JLDak/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/google/guava/blob/65f6b4f4b132a051616403bcf74e4034a19d92a1/guava/src/com/google/common/collect/Lists.java#L86&quot; data-source-url=&quot;https://github.com/google/guava/blob/65f6b4f4b132a051616403bcf74e4034a19d92a1/guava/src/com/google/common/collect/Lists.java#L86&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cXD8Cx/hyNqEWhzgR/dnksdS9Z8EePIDkV6JLDak/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&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;GitHub - google/guava: Google core libraries for Java&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Google core libraries for Java. Contribute to google/guava development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.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;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;결국 두가지는&amp;nbsp;&lt;span style=&quot;color: #ee2323;&quot;&gt;근본적으로 같고&lt;/span&gt;, newArrayList(); 를 사용한다면 복잡한 generic type일 경우 쓰지 않아도 된다는 장점이 있다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1645014512127&quot; class=&quot;lasso&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;List&amp;lt;Map&amp;lt;X,List&amp;lt;Y&amp;gt;&amp;gt; list = new ArrayList&amp;lt;Map&amp;lt;X,List&amp;lt;Y&amp;gt;&amp;gt;();
List&amp;lt;Map&amp;lt;X,List&amp;lt;Y&amp;gt;&amp;gt; list = Lists.newArrayList();&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;newArrayList(); 는 다음과 같이 활용할 수 있는데 나는 주로 이런 경우에 java.util의 Arrays.asList(); 를 활용했던 것 같다.&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;reasonml&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;List&amp;lt;String&amp;gt; list = Lists.newArrayList(&quot;one&quot;,&quot;another&quot;, null, &quot;one_more&quot;)
List&amp;lt;String&amp;gt; list = Arrays.asList(&quot;one&quot;,&quot;another&quot;, null, &quot;one_more&quot;)&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;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;결론:&lt;/b&gt; 본인의 취향에 따라 아무거나 쓰는 것으로!&lt;/span&gt;&lt;/p&gt;</description>
      <category>Study</category>
      <category>ArrayList</category>
      <category>Java</category>
      <category>lists</category>
      <category>자바</category>
      <author>kswim</author>
      <guid isPermaLink="true">https://kswims.tistory.com/214</guid>
      <comments>https://kswims.tistory.com/214#entry214comment</comments>
      <pubDate>Wed, 16 Feb 2022 21:43:16 +0900</pubDate>
    </item>
  </channel>
</rss>