<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Coding Dongin</title>
    <link>https://dongin97.tistory.com/</link>
    <description>데이터 흐름과 운영 자동화를 설계하는 백엔드 개발자</description>
    <language>ko</language>
    <pubDate>Mon, 20 Jul 2026 09:09:50 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>PUSH &amp;rarr; MERGE &amp;rarr; DEPLOY</managingEditor>
    <image>
      <title>Coding Dongin</title>
      <url>https://tistory1.daumcdn.net/tistory/7137738/attach/5347fbc198804598858b893fd1776817</url>
      <link>https://dongin97.tistory.com</link>
    </image>
    <item>
      <title>프로그래머스 n개 간격의 원소들 JAVA 풀이</title>
      <link>https://dongin97.tistory.com/384</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;  문제 링크&lt;/h3&gt;
&lt;figure id=&quot;og_1784178111628&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;프로그래머스&quot; data-og-description=&quot;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/181888&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/etLtjK/dJMb8UaciDV/FJSTkWkdgfqsLZNL93eCo0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/yyrxe/dJMb8SXKrHA/fYTPc6IkFy18jlCkCh8O6k/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/181888&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/181888&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/etLtjK/dJMb8UaciDV/FJSTkWkdgfqsLZNL93eCo0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/yyrxe/dJMb8SXKrHA/fYTPc6IkFy18jlCkCh8O6k/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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;정수 배열 num_list와 정수 n이 주어질 때,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;첫 번째 원소부터 n개 간격으로 저장된 원소들만 차례대로 담아 반환&lt;/b&gt;하는 문제&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;p data-ke-size=&quot;size16&quot;&gt;배열의 첫 번째 원소부터 시작하여 &lt;b&gt;n씩 증가&lt;/b&gt;하면서 순회하면 원하는 원소만 선택할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;선택한 원소는&lt;b&gt; ArrayList에 저장한 뒤, 마지막에 int[] 배열&lt;/b&gt;로 변환하여 반환&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;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. n만큼 증가하며 배열 순회&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;matlab&quot;&gt;&lt;code&gt;for (int i = 0; i &amp;lt; num_list.length; i += n) {
    list.add(num_list[i]);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;반복문의 증감식을 &lt;b&gt;i++&lt;/b&gt;가 아닌&lt;b&gt; i += n&lt;/b&gt;으로 작성하여 n칸씩 이동합니다.&lt;/li&gt;
&lt;li&gt;첫 번째 원소부터 n개 간격의 원소만 선택됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. ArrayList를 배열로 변환&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;arduino&quot;&gt;&lt;code&gt;int[] answer = new int[list.size()];

for (int i = 0; i &amp;lt; list.size(); i++) {
    answer[i] = list.get(i);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;저장된 값을 반환하기 위해&lt;b&gt; ArrayList&amp;lt;Integer&amp;gt;&lt;/b&gt;를&lt;b&gt; int[] 배열로 변환&lt;/b&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;pre class=&quot;arduino&quot;&gt;&lt;code&gt;import java.util.ArrayList;

class Solution {
    public int[] solution(int[] num_list, int n) {
        ArrayList&amp;lt;Integer&amp;gt; list = new ArrayList&amp;lt;&amp;gt;();

        for (int i = 0; i &amp;lt; num_list.length; i += n) {
            list.add(num_list[i]);
        }

        int[] answer = new int[list.size()];
        for (int i = 0; i &amp;lt; list.size(); i++) {
            answer[i] = list.get(i);
        }

        return answer;
    }
}
&lt;/code&gt;&lt;/pre&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;i += n을 사용하면 n개 간격으로 배열을 순회할 수 있습니다.&lt;/li&gt;
&lt;li&gt;결과의 크기를 미리 알 수 없을 때는 ArrayList를 활용하면 편리합니다.&lt;/li&gt;
&lt;li&gt;마지막에는 ArrayList의 값을 int[]로 변환하여 반환합니다.&lt;/li&gt;
&lt;li&gt;반복문의 증감식을 적절히 활용하면 코드를 간결하게 작성할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>코테(Solved.ac + Programmers)</category>
      <category>ArrayList</category>
      <category>java</category>
      <category>level0</category>
      <category>구현</category>
      <category>반복문</category>
      <category>배열</category>
      <category>코딩테스트</category>
      <category>프로래머스</category>
      <author>PUSH &amp;rarr; MERGE &amp;rarr; DEPLOY</author>
      <guid isPermaLink="true">https://dongin97.tistory.com/384</guid>
      <comments>https://dongin97.tistory.com/384#entry384comment</comments>
      <pubDate>Thu, 16 Jul 2026 14:03:28 +0900</pubDate>
    </item>
    <item>
      <title>프로그래머스 n번째 원소부터 JAVA 풀이 (Level 0)</title>
      <link>https://dongin97.tistory.com/381</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;  문제 링크&lt;/h3&gt;
&lt;figure id=&quot;og_1784093833162&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;프로그래머스&quot; data-og-description=&quot;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/181892&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Qr0Yd/dJMb9iIS84J/JNMkickykk2HGCXAEjkgNK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/bNziGO/dJMb9iIS84I/mUkFlwKNRGPSaz4PQpxK1k/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/181892&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/181892&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Qr0Yd/dJMb9iIS84J/JNMkickykk2HGCXAEjkgNK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/bNziGO/dJMb9iIS84I/mUkFlwKNRGPSaz4PQpxK1k/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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;정수 배열 num_list와 정수 n이 주어질 때, &lt;b&gt;배열의 n번째 원소부터 마지막 원소까지&lt;/b&gt;를 새로운 배열로 반환하는 문제입니다.&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;p data-ke-size=&quot;size16&quot;&gt;Java에서 제공하는 &lt;b&gt;Arrays.copyOfRange()&lt;/b&gt; 메서드를 사용하면 원하는 구간의 배열을 간단하게 복사할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제에서는 n번째 원소부터 시작해야 하므로, &lt;b&gt;배열의 인덱스는 0부터 시작&lt;/b&gt;한다는 점을 고려하여 &lt;b&gt;시작 인덱스를 n -&lt;/b&gt; 1로 지정했습니다.&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;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. Arrays.copyOfRange()&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;return Arrays.copyOfRange(numList, n - 1, numList.length);
&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;from :&lt;/b&gt; 복사를 시작할 인덱스(포함)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;to :&lt;/b&gt; 복사를 끝낼 인덱스(미포함)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;마지막 원소까지 복사&lt;/b&gt;하기 위해 numList.length를 사용합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 왜 n - 1인가?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;배열은 &lt;b&gt;0부터 시작하는 인덱스(Index)&lt;/b&gt; 를 사용합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어, &lt;b&gt;n = 2&lt;/b&gt;라면 두 번째 원소는 &lt;b&gt;인덱스 1이므로 n - 1을 시작 위치&lt;/b&gt;로 지정해야 합니다.&lt;/p&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;배열 : [5, 2, 1, 7, 5]
인덱스 : 0  1  2  3  4
&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  전체 코드&lt;/h3&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;import java.util.Arrays;

class Solution {
    public int[] solution(int[] numList, int n) {
        return Arrays.copyOfRange(numList, n - 1, numList.length);
    }
}
&lt;/code&gt;&lt;/pre&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;&lt;b&gt;Arrays.copyOfRange()&lt;/b&gt;를 사용하면 원하는 구간의 배열을 쉽게 복사할 수 있습니다.&lt;/li&gt;
&lt;li&gt;시작 인덱스는 포함되고, 끝 인덱스는 포함되지 않습니다.&lt;/li&gt;
&lt;li&gt;배열은 0부터 시작하므로&lt;b&gt; n번째 원소는 n - 1 인덱스&lt;/b&gt;입니다.&lt;/li&gt;
&lt;li&gt;배열을 직접 반복문으로 복사하는 것보다 코드가 간결하고 가독성이 좋아집니다.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>코테(Solved.ac + Programmers)</category>
      <category>Arrays</category>
      <category>copyOfRange</category>
      <category>java</category>
      <category>level0</category>
      <category>배열</category>
      <category>코딩 테스트</category>
      <category>프로그래머스</category>
      <author>PUSH &amp;rarr; MERGE &amp;rarr; DEPLOY</author>
      <guid isPermaLink="true">https://dongin97.tistory.com/381</guid>
      <comments>https://dongin97.tistory.com/381#entry381comment</comments>
      <pubDate>Wed, 15 Jul 2026 14:39:25 +0900</pubDate>
    </item>
    <item>
      <title>프로그래머스 홀짝에 따라 다른 값 반환하기 JAVA 풀이 (조건문, 반복문)</title>
      <link>https://dongin97.tistory.com/379</link>
      <description>&lt;h3 data-end=&quot;58&quot; data-start=&quot;46&quot; data-section-id=&quot;dqm8rp&quot; data-ke-size=&quot;size23&quot;&gt;  문제 링크&lt;/h3&gt;
&lt;figure id=&quot;og_1784008423068&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;프로그래밍 강의 | 프로그래머스 스쿨&quot; data-og-description=&quot;국비지원 K-디지털 기초역량훈련 코스, K-디지털 트레이닝 코스, 선배 개발자와 함께하는 라이브 교육, 데이터 사이언스, PCCP/PCCE 자격증, 세미나, 각종 프로그래밍 기초부터 실전까지 원하는 강&quot; data-og-host=&quot;school.programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn&quot; data-og-url=&quot;https://school.programmers.co.kr/learn&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cywnCu/dJMb9hDdi6L/HpOtC93h8qkzCkxFifdo41/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/xTzCN/dJMb8QMovb3/d3kcFoXH4ImRpJ7RbepXsK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cywnCu/dJMb9hDdi6L/HpOtC93h8qkzCkxFifdo41/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/xTzCN/dJMb8QMovb3/d3kcFoXH4ImRpJ7RbepXsK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;프로그래밍 강의 | 프로그래머스 스쿨&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;국비지원 K-디지털 기초역량훈련 코스, K-디지털 트레이닝 코스, 선배 개발자와 함께하는 라이브 교육, 데이터 사이언스, PCCP/PCCE 자격증, 세미나, 각종 프로그래밍 기초부터 실전까지 원하는 강&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;school.programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr data-end=&quot;135&quot; data-start=&quot;132&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;148&quot; data-start=&quot;137&quot; data-section-id=&quot;1m4c7mg&quot; data-ke-size=&quot;size26&quot;&gt;  문제 개요&lt;/h2&gt;
&lt;p data-end=&quot;164&quot; data-start=&quot;150&quot; data-ke-size=&quot;size16&quot;&gt;정수 n이 주어질 때,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;242&quot; data-start=&quot;166&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;197&quot; data-start=&quot;166&quot; data-section-id=&quot;12xy7vh&quot;&gt;&lt;b&gt;n이 홀수&lt;/b&gt;이면 n 이하의 홀수의 합을 반환&lt;/li&gt;
&lt;li data-end=&quot;242&quot; data-start=&quot;198&quot; data-section-id=&quot;1q5fhbb&quot;&gt;&lt;b&gt;n이 짝수&lt;/b&gt;이면 n 이하의 짝수의 제곱의 합을 반환하는 문제입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;n = 7

1 + 3 + 5 + 7 = 16&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;excel&quot;&gt;&lt;code&gt;n = 10

2&amp;sup2; + 4&amp;sup2; + 6&amp;sup2; + 8&amp;sup2; + 10&amp;sup2;
= 4 + 16 + 36 + 64 + 100
= 220&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;370&quot; data-start=&quot;367&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;383&quot; data-start=&quot;372&quot; data-section-id=&quot;klmm6d&quot; data-ke-size=&quot;size26&quot;&gt;  접근 방법&lt;/h2&gt;
&lt;p data-end=&quot;409&quot; data-start=&quot;385&quot; data-ke-size=&quot;size16&quot;&gt;먼저 n이 홀수인지 짝수인지 확인합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;476&quot; data-start=&quot;411&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;443&quot; data-start=&quot;411&quot; data-section-id=&quot;edgwat&quot;&gt;홀수라면 1부터 2씩 증가하며 홀수의 합을 계산합니다.&lt;/li&gt;
&lt;li data-end=&quot;476&quot; data-start=&quot;444&quot; data-section-id=&quot;csr0iq&quot;&gt;짝수라면 2부터 2씩 증가하며 짝수의 제곱을 더합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;519&quot; data-start=&quot;478&quot; data-ke-size=&quot;size16&quot;&gt;반복문의 증가값을 2로 설정하여 필요한 숫자만 순회하도록 구현했습니다.&lt;/p&gt;
&lt;p data-end=&quot;541&quot; data-start=&quot;521&quot; data-ke-size=&quot;size16&quot;&gt;시간복잡도는 &lt;b&gt;O(N)&lt;/b&gt; 입니다.&lt;/p&gt;
&lt;hr data-end=&quot;546&quot; data-start=&quot;543&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;561&quot; data-start=&quot;548&quot; data-section-id=&quot;12j5cu5&quot; data-ke-size=&quot;size26&quot;&gt;  핵심 아이디어&lt;/h2&gt;
&lt;p data-end=&quot;579&quot; data-start=&quot;563&quot; data-section-id=&quot;18m4t9s&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 홀수와 짝수 분기&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;613&quot; data-start=&quot;581&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;n % 2&lt;/b&gt;를 이용하여 어떤 계산을 수행할지 결정합니다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;mercury&quot;&gt;&lt;code&gt;if (n % 2 == 0) {
    ...
} else {
    ...
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;676&quot; data-start=&quot;673&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-end=&quot;695&quot; data-start=&quot;678&quot; data-section-id=&quot;18m3q5t&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 필요한 숫자만 순회&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;720&quot; data-start=&quot;697&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;짝수라면 2부터&lt;/b&gt; 시작하여&lt;b&gt; 2씩 증가&lt;/b&gt;합니다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;matlab&quot;&gt;&lt;code&gt;for (int i = 2; i &amp;lt;= n; i += 2) {
    answer += i * i;
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;815&quot; data-start=&quot;792&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;홀수라면 1부터&lt;/b&gt; 시작하여&lt;b&gt; 2씩 증가&lt;/b&gt;합니다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;matlab&quot;&gt;&lt;code&gt;for (int i = 1; i &amp;lt;= n; i += 2) {
    answer += i;
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;916&quot; data-start=&quot;883&quot; data-ke-size=&quot;size16&quot;&gt;이렇게 하면 불필요하게 모든 숫자를 검사하지 않아도 됩니다.&lt;/p&gt;
&lt;hr data-end=&quot;921&quot; data-start=&quot;918&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-end=&quot;935&quot; data-start=&quot;923&quot; data-section-id=&quot;107sj7m&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 제곱 계산&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;962&quot; data-start=&quot;937&quot; data-ke-size=&quot;size16&quot;&gt;짝수인 경우에는 숫자의 제곱을 더해야 합니다.&lt;/p&gt;
&lt;p data-end=&quot;962&quot; data-start=&quot;937&quot; data-ke-size=&quot;size16&quot;&gt;Math.pow()보다 정수 연산인&lt;b&gt; i * i가 더 간단하고 성능&lt;/b&gt;도 좋습니다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;makefile&quot;&gt;&lt;code&gt;answer += i * i;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;1046&quot; data-start=&quot;1043&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1059&quot; data-start=&quot;1048&quot; data-section-id=&quot;5wises&quot; data-ke-size=&quot;size26&quot;&gt;  처리 흐름&lt;/h2&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;excel&quot;&gt;&lt;code&gt;n 입력
   │
   ▼
홀수인가?
   │
 ┌─┴────────────┐
 │              │
예             아니오
 │              │
홀수 합 계산    짝수 제곱 합 계산
 │              │
 └──────┬───────┘
        ▼
      결과 반환&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;1255&quot; data-start=&quot;1252&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1268&quot; data-start=&quot;1257&quot; data-section-id=&quot;orh898&quot; data-ke-size=&quot;size26&quot;&gt;  전체 코드&lt;/h2&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;package level0;

public class No80 {
    public static void main(String[] args) {
        int n = 10;
        int answer = 0;

        if (n % 2 == 0) {
            for (int i = 2; i &amp;lt;= n; i += 2) {
                answer += i * i;
            }
        } else {
            for (int i = 1; i &amp;lt;= n; i += 2) {
                answer += i;
            }
        }

        System.out.println(answer);
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;1693&quot; data-start=&quot;1690&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1703&quot; data-start=&quot;1695&quot; data-section-id=&quot;13i27b9&quot; data-ke-size=&quot;size26&quot;&gt;  정리&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1883&quot; data-start=&quot;1705&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1734&quot; data-start=&quot;1705&quot; data-section-id=&quot;185ngtx&quot;&gt;n의 &lt;b&gt;홀짝 여부&lt;/b&gt;에 따라&lt;b&gt; 계산 방식을 분기&lt;/b&gt;한다.&lt;/li&gt;
&lt;li data-end=&quot;1770&quot; data-start=&quot;1735&quot; data-section-id=&quot;6n4m0o&quot;&gt;반복문의&lt;b&gt; 증가값을 2로 설정&lt;/b&gt;하여 &lt;b&gt;필요한 숫자만 순회&lt;/b&gt;한다.&lt;/li&gt;
&lt;li data-end=&quot;1797&quot; data-start=&quot;1771&quot; data-section-id=&quot;1xtkamu&quot;&gt;짝수는 &lt;b&gt;제곱의 합, 홀수는 합계&lt;/b&gt;를 계산한다.&lt;/li&gt;
&lt;li data-end=&quot;1847&quot; data-start=&quot;1798&quot; data-section-id=&quot;1tbgdgh&quot;&gt;제곱은&lt;b&gt; Math.pow()보다 i * i를&lt;/b&gt; 사용하는 것이 간단하고 효율적이다.&lt;/li&gt;
&lt;li data-end=&quot;1883&quot; data-start=&quot;1848&quot; data-section-id=&quot;gi4n9l&quot;&gt;조건문과 반복문의 기본 개념을 함께 연습하기 좋은 문제이다.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>코테(Solved.ac + Programmers)</category>
      <category>FOR문</category>
      <category>java</category>
      <category>level0</category>
      <category>반복문</category>
      <category>조건문</category>
      <category>코딩테스트</category>
      <category>프로그래머스</category>
      <category>홀수</category>
      <author>PUSH &amp;rarr; MERGE &amp;rarr; DEPLOY</author>
      <guid isPermaLink="true">https://dongin97.tistory.com/379</guid>
      <comments>https://dongin97.tistory.com/379#entry379comment</comments>
      <pubDate>Tue, 14 Jul 2026 14:56:23 +0900</pubDate>
    </item>
    <item>
      <title>프로그래머스 바탕화면 정리 JAVA 풀이｜최소 드래그 영역 구하기</title>
      <link>https://dongin97.tistory.com/378</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;  문제 링크&lt;/h3&gt;
&lt;figure id=&quot;og_1783865659474&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;프로그래머스&quot; data-og-description=&quot;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/161990&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bcB2kB/dJMb85W5t0w/EOyegK9D35mM8QYcHDcQn1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/b7lDF0/dJMb85W5t0u/qVKBwlrAlCaPYWBST54b7k/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/161990&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/161990&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bcB2kB/dJMb85W5t0w/EOyegK9D35mM8QYcHDcQn1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/b7lDF0/dJMb85W5t0u/qVKBwlrAlCaPYWBST54b7k/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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;wallpaper&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;&lt;b&gt;.&lt;/b&gt;: 빈칸&lt;/li&gt;
&lt;li&gt;&lt;b&gt;#&lt;/b&gt;: 파일이 있는 칸&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바탕화면에 존재하는 &lt;b&gt;모든 파일을 한 번의 드래그&lt;/b&gt;로 선택해야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;드래그의 &lt;b&gt;시작점은 왼쪽 위 좌표 (lux, luy), 끝점은 오른쪽 아래 좌표 (rdx, rdy)&lt;/b&gt;이며 다음과 같은 배열을 반환해야 합니다.&lt;/p&gt;
&lt;pre class=&quot;json&quot;&gt;&lt;code&gt;[lux, luy, rdx, rdy]
&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 파일을 포함하면서&lt;b&gt; 드래그 이동거리가 가장 짧은 직사각형의 좌표&lt;/b&gt;를 구하는 문제입니다.&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;p data-ke-size=&quot;size16&quot;&gt;모든 파일을 포함하는 가장 작은 직사각형을 찾으면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 위해 파일이 있는 &lt;b&gt;모든 위치를 확인하면서 다음 네 가지 값&lt;/b&gt;을 구합니다.&lt;/p&gt;
&lt;pre class=&quot;ini&quot;&gt;&lt;code&gt;lux = 파일이 존재하는 가장 위쪽 행
luy = 파일이 존재하는 가장 왼쪽 열
rdx = 파일이 존재하는 가장 아래쪽 행 + 1
rdy = 파일이 존재하는 가장 오른쪽 열 + 1
&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 &lt;b&gt;파일이 (2, 3) 위치&lt;/b&gt;의 칸에 있다면&lt;b&gt; 이 파일 전체를 포함&lt;/b&gt;하기 위한 &lt;b&gt;오른쪽 아래 격자점은 (3, 4)&lt;/b&gt;가 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 드래그 끝점에는 행과 열에 각각 1을 더해야 합니다.&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;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;&lt;b&gt;드래그 시작점&lt;/b&gt;은 모든 파일보다&lt;b&gt; 위쪽이면서 왼쪽&lt;/b&gt;에 있어야 합니다.&lt;/p&gt;
&lt;pre class=&quot;ini&quot;&gt;&lt;code&gt;lux = Math.min(lux, i);
luy = Math.min(luy, j);
&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;lux&lt;/b&gt;에는 파일이 존재하는 &lt;b&gt;행 중 가장 작은 값&lt;/b&gt;이 저장됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;luy&lt;/b&gt;에는 파일이 존재하는 &lt;b&gt;열 중 가장 작은 값&lt;/b&gt;이 저장됩니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&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;&lt;b&gt;드래그 끝점&lt;/b&gt;은 모든 파일보다 &lt;b&gt;아래쪽이면서 오른쪽&lt;/b&gt;에 있어야 합니다.&lt;/p&gt;
&lt;pre class=&quot;ini&quot;&gt;&lt;code&gt;rdx = Math.max(rdx, i + 1);
rdy = Math.max(rdy, j + 1);
&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일은 격자 칸에 있고 드래그 &lt;b&gt;끝점은 격자점이므로 i와 j에 각각 1을 더합니다.&lt;/b&gt;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 초깃값 설정하기&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;최솟값&lt;/b&gt;을 구하는 변수는 충분히 큰 값으로 시작합니다.&lt;/p&gt;
&lt;pre class=&quot;ebnf&quot;&gt;&lt;code&gt;int lux = wallpaper.length;
int luy = wallpaper[0].length();
&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최댓값을 구하는 변수는 &lt;b&gt;가장 작은 값인 0으로 시작&lt;/b&gt;합니다.&lt;/p&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;int rdx = 0;
int rdy = 0;
&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일을 발견할 때마다 &lt;b&gt;Math.min()과 Math.max()&lt;/b&gt;를 이용해 &lt;b&gt;좌표 범위를 갱신&lt;/b&gt;합니다.&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;pre class=&quot;matlab&quot;&gt;&lt;code&gt;class Solution {
    public int[] solution(String[] wallpaper) {
        int lux = wallpaper.length;
        int luy = wallpaper[0].length();
        int rdx = 0;
        int rdy = 0;

        for (int i = 0; i &amp;lt; wallpaper.length; i++) {
            for (int j = 0; j &amp;lt; wallpaper[i].length(); j++) {
                if (wallpaper[i].charAt(j) == '#') {
                    lux = Math.min(lux, i);
                    luy = Math.min(luy, j);
                    rdx = Math.max(rdx, i + 1);
                    rdy = Math.max(rdy, j + 1);
                }
            }
        }

        return new int[]{lux, luy, rdx, rdy};
    }
}
&lt;/code&gt;&lt;/pre&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;이차원 문자열 배열을 &lt;b&gt;순회하며 #의 위치&lt;/b&gt;를 찾는다.&lt;/li&gt;
&lt;li&gt;파일이 존재하는&lt;b&gt; 행과 열의 최솟값&lt;/b&gt;으로 &lt;b&gt;드래그 시작점&lt;/b&gt;을 구한다.&lt;/li&gt;
&lt;li&gt;파일이 존재하는 &lt;b&gt;행과 열의 최댓값에 1을 더해 드래그 끝점&lt;/b&gt;을 구한다.&lt;/li&gt;
&lt;li&gt;Math.min()과 Math.max()를 사용하면 &lt;b&gt;최소 직사각형 영역을 간단하게 계산&lt;/b&gt;할 수 있다.&lt;/li&gt;
&lt;li&gt;시간 복잡도는 바탕화면의 세로 길이를 N, 가로 길이를 M이라고 할 때 O(N &amp;times; M)이다.&lt;/li&gt;
&lt;li&gt;격자 칸과 격자점의 차이를 이해하고 끝점에 1을 더하는 것이 핵심이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>코테(Solved.ac + Programmers)</category>
      <category>java</category>
      <category>level1</category>
      <category>MathMin</category>
      <category>구현</category>
      <category>문자열</category>
      <category>바탕화면정리</category>
      <category>알고리즘</category>
      <category>이차원배열</category>
      <category>코딩테스트</category>
      <category>프로그래머스</category>
      <author>PUSH &amp;rarr; MERGE &amp;rarr; DEPLOY</author>
      <guid isPermaLink="true">https://dongin97.tistory.com/378</guid>
      <comments>https://dongin97.tistory.com/378#entry378comment</comments>
      <pubDate>Sun, 12 Jul 2026 23:22:21 +0900</pubDate>
    </item>
    <item>
      <title>프로그래머스 홀수 vs 짝수 JAVA 풀이 (StringBuilder 활용, 문자열 이어붙이기)</title>
      <link>https://dongin97.tistory.com/376</link>
      <description>&lt;h3 data-section-id=&quot;dqm8rp&quot; data-end=&quot;69&quot; data-start=&quot;57&quot; data-ke-size=&quot;size23&quot;&gt;  문제 링크&lt;/h3&gt;
&lt;figure id=&quot;og_1784003939047&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;프로그래밍 강의 | 프로그래머스 스쿨&quot; data-og-description=&quot;국비지원 K-디지털 기초역량훈련 코스, K-디지털 트레이닝 코스, 선배 개발자와 함께하는 라이브 교육, 데이터 사이언스, PCCP/PCCE 자격증, 세미나, 각종 프로그래밍 기초부터 실전까지 원하는 강&quot; data-og-host=&quot;school.programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn&quot; data-og-url=&quot;https://school.programmers.co.kr/learn&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cywnCu/dJMb9hDdi6L/HpOtC93h8qkzCkxFifdo41/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/xTzCN/dJMb8QMovb3/d3kcFoXH4ImRpJ7RbepXsK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cywnCu/dJMb9hDdi6L/HpOtC93h8qkzCkxFifdo41/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/xTzCN/dJMb8QMovb3/d3kcFoXH4ImRpJ7RbepXsK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;프로그래밍 강의 | 프로그래머스 스쿨&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;국비지원 K-디지털 기초역량훈련 코스, K-디지털 트레이닝 코스, 선배 개발자와 함께하는 라이브 교육, 데이터 사이언스, PCCP/PCCE 자격증, 세미나, 각종 프로그래밍 기초부터 실전까지 원하는 강&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;school.programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr data-end=&quot;138&quot; data-start=&quot;135&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-section-id=&quot;1m4c7mg&quot; data-end=&quot;151&quot; data-start=&quot;140&quot; data-ke-size=&quot;size26&quot;&gt;  문제 개요&lt;/h2&gt;
&lt;p data-end=&quot;177&quot; data-start=&quot;153&quot; data-ke-size=&quot;size16&quot;&gt;정수 배열 &lt;b&gt;num_list&lt;/b&gt;가 주어질 때,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;216&quot; data-start=&quot;179&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-section-id=&quot;1tdoyd5&quot; data-end=&quot;197&quot; data-start=&quot;179&quot;&gt;&lt;b&gt;홀수만&lt;/b&gt; 순서대로 이어 붙인 수&lt;/li&gt;
&lt;li data-section-id=&quot;1f5fz0k&quot; data-end=&quot;216&quot; data-start=&quot;198&quot;&gt;&lt;b&gt;짝수만&lt;/b&gt; 순서대로 이어 붙인 수&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;244&quot; data-start=&quot;218&quot; data-ke-size=&quot;size16&quot;&gt;를 만든 후 &lt;b&gt;두 수의 합&lt;/b&gt;을 &lt;b&gt;반환&lt;/b&gt;하는 문제&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;[3, 4, 5, 2, 1]

홀수 &amp;rarr; 351
짝수 &amp;rarr; 42

351 + 42 = 393&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;320&quot; data-start=&quot;317&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-section-id=&quot;klmm6d&quot; data-end=&quot;333&quot; data-start=&quot;322&quot; data-ke-size=&quot;size26&quot;&gt;  접근 방법&lt;/h2&gt;
&lt;p data-end=&quot;349&quot; data-start=&quot;335&quot; data-ke-size=&quot;size16&quot;&gt;배열을 한 번만 순회하면서&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;375&quot; data-start=&quot;351&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-section-id=&quot;17q6a8x&quot; data-end=&quot;363&quot; data-start=&quot;351&quot;&gt;짝수는 even&lt;/li&gt;
&lt;li data-section-id=&quot;1mj7zkb&quot; data-end=&quot;375&quot; data-start=&quot;364&quot;&gt;홀수는 odd&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;406&quot; data-start=&quot;377&quot; data-ke-size=&quot;size16&quot;&gt;StringBuilder에 각각 이어 붙였습니다.&lt;/p&gt;
&lt;p data-end=&quot;439&quot; data-start=&quot;408&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;순회가 끝난 뒤 문자열을 정수&lt;/b&gt;로 &lt;b&gt;변환&lt;/b&gt;하여 더하면 됩니다.&lt;/p&gt;
&lt;hr data-end=&quot;466&quot; data-start=&quot;463&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-section-id=&quot;12j5cu5&quot; data-end=&quot;481&quot; data-start=&quot;468&quot; data-ke-size=&quot;size26&quot;&gt;  핵심 아이디어&lt;/h2&gt;
&lt;p data-section-id=&quot;g5szxy&quot; data-end=&quot;506&quot; data-start=&quot;483&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 향상된 for문으로 배열 순회&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;561&quot; data-start=&quot;508&quot; data-ke-size=&quot;size16&quot;&gt;배열의 인덱스를 사용할 필요가 없기 때문에&lt;b&gt; 향상된 for문&lt;/b&gt;을 사용하면 코드가 더욱 간결해집니다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;dart&quot;&gt;&lt;code&gt;for (int num : numList) {
    ...
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;615&quot; data-start=&quot;612&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-section-id=&quot;1j0otla&quot; data-end=&quot;648&quot; data-start=&quot;617&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 삼항 연산자로 StringBuilder 선택&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;690&quot; data-start=&quot;650&quot; data-ke-size=&quot;size16&quot;&gt;짝수와 홀수를 구분하여 각각의 StringBuilder에 추가합니다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;maxima&quot;&gt;&lt;code&gt;(num % 2 == 0 ? even : odd).append(num);&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;751&quot; data-start=&quot;746&quot; data-ke-size=&quot;size16&quot;&gt;기존이라면 작성할 수 있지만, 삼항 연산자를 사용하면 한 줄로 표현할 수 있습니다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;maxima&quot;&gt;&lt;code&gt;if (num % 2 == 0) {
    even.append(num);
} else {
    odd.append(num);
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;888&quot; data-start=&quot;885&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-section-id=&quot;x8hoiy&quot; data-end=&quot;908&quot; data-start=&quot;890&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 문자열을 정수로 변환&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;962&quot; data-start=&quot;910&quot; data-ke-size=&quot;size16&quot;&gt;모든 숫자를 이어 붙인 뒤 &lt;b&gt;Integer.parseInt()&lt;/b&gt;를 이용하여 &lt;b&gt;정수&lt;/b&gt;로 변환합니다.&lt;/p&gt;
&lt;p data-end=&quot;962&quot; data-start=&quot;910&quot; data-ke-size=&quot;size16&quot;&gt;이후 &lt;b&gt;두 값&lt;/b&gt;을 더해 &lt;b&gt;최종 결과를 반환&lt;/b&gt;합니다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;Integer.parseInt(even.toString())
Integer.parseInt(odd.toString())&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;1073&quot; data-start=&quot;1070&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-section-id=&quot;5wises&quot; data-end=&quot;1086&quot; data-start=&quot;1075&quot; data-ke-size=&quot;size26&quot;&gt;  처리 흐름&lt;/h2&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;배열 순회
      │
      ▼
짝수 &amp;rarr; even 저장
홀수 &amp;rarr; odd 저장
      │
      ▼
StringBuilder &amp;rarr; String 변환
      │
      ▼
Integer.parseInt()
      │
      ▼
두 수를 더하여 반환&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;1256&quot; data-start=&quot;1253&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-section-id=&quot;orh898&quot; data-end=&quot;1269&quot; data-start=&quot;1258&quot; data-ke-size=&quot;size26&quot;&gt;  전체 코드&lt;/h2&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;package level0;

public class No78 {
    public static void main(String[] args) {
        int[] numList = {3, 4, 5, 2, 1};

        StringBuilder even = new StringBuilder();
        StringBuilder odd = new StringBuilder();

        for (int num : numList) {
            (num % 2 == 0 ? even : odd).append(num);
        }

        System.out.println(
                Integer.parseInt(even.toString())
                + Integer.parseInt(odd.toString())
        );
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;1757&quot; data-start=&quot;1754&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-section-id=&quot;13i27b9&quot; data-end=&quot;1767&quot; data-start=&quot;1759&quot; data-ke-size=&quot;size26&quot;&gt;  정리&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1990&quot; data-start=&quot;1769&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-section-id=&quot;1tuxojy&quot; data-end=&quot;1799&quot; data-start=&quot;1769&quot;&gt;배열을 한 번만 순회하여 해결할 수 있는 문제이다.&lt;/li&gt;
&lt;li data-section-id=&quot;yilib3&quot; data-end=&quot;1846&quot; data-start=&quot;1800&quot;&gt;StringBuilder를 &lt;b&gt;사용하면 문자열을 효율적으로 이어 붙일 수 있다.&lt;/b&gt;&lt;/li&gt;
&lt;li data-section-id=&quot;n0q8m1&quot; data-end=&quot;1893&quot; data-start=&quot;1847&quot;&gt;Integer.parseInt()를 이용해 &lt;b&gt;문자열을 정수&lt;/b&gt;로 변환할 수 있다.&lt;/li&gt;
&lt;li data-section-id=&quot;pgutcu&quot; data-end=&quot;1943&quot; data-start=&quot;1894&quot;&gt;삼항 연산자를 활용하면 조건에 따라 객체를 선택하는 코드를 간결하게 작성할 수 있다.&lt;/li&gt;
&lt;li data-section-id=&quot;1smmce2&quot; data-end=&quot;1990&quot; data-start=&quot;1944&quot;&gt;향상된 for문을 사용하면 불필요한 인덱스 사용을 줄여 가독성을 높일 수 있다.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>코테(Solved.ac + Programmers)</category>
      <category>java</category>
      <category>JAVA 풀이</category>
      <category>level0</category>
      <category>StringBuilder</category>
      <category>문자열</category>
      <category>반복문</category>
      <category>배열</category>
      <category>삼항연산자</category>
      <category>코딩테스트</category>
      <category>프로그래머스</category>
      <author>PUSH &amp;rarr; MERGE &amp;rarr; DEPLOY</author>
      <guid isPermaLink="true">https://dongin97.tistory.com/376</guid>
      <comments>https://dongin97.tistory.com/376#entry376comment</comments>
      <pubDate>Sat, 11 Jul 2026 23:59:48 +0900</pubDate>
    </item>
    <item>
      <title>프로그래머스 삼각형의 완성조건 (1) JAVA 풀이</title>
      <link>https://dongin97.tistory.com/374</link>
      <description>&lt;h3 data-end=&quot;54&quot; data-start=&quot;42&quot; data-ke-size=&quot;size23&quot;&gt;  문제 링크&lt;/h3&gt;
&lt;figure id=&quot;og_1783680339979&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;프로그래머스&quot; data-og-description=&quot;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120889&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/SHfL7/dJMb88GgYKJ/g96tqOiLw1LoaYulaI1gvK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/cmAP2D/dJMb8WMBBGO/o05NJnlYnS3c0gNo2imII0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120889&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120889&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/SHfL7/dJMb88GgYKJ/g96tqOiLw1LoaYulaI1gvK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/cmAP2D/dJMb8WMBBGO/o05NJnlYnS3c0gNo2imII0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr data-end=&quot;124&quot; data-start=&quot;121&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;137&quot; data-start=&quot;126&quot; data-ke-size=&quot;size26&quot;&gt;  문제 개요&lt;/h2&gt;
&lt;p data-end=&quot;201&quot; data-start=&quot;139&quot; data-ke-size=&quot;size16&quot;&gt;세 변의 길이가 담긴 배열 &lt;b&gt;sides&lt;/b&gt;가 주어질 때,&lt;b&gt; 세 변으로 삼각형을 만들 수 있는지 판단&lt;/b&gt;하는 문제입니다.&lt;/p&gt;
&lt;p data-end=&quot;229&quot; data-start=&quot;203&quot; data-ke-size=&quot;size16&quot;&gt;삼각형이 성립하기 위한 조건은 다음과 같습니다.&lt;/p&gt;
&lt;blockquote data-end=&quot;264&quot; data-start=&quot;231&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-end=&quot;264&quot; data-start=&quot;233&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;가장 긴 변의 길이 &amp;lt; 나머지 두 변의 길이의 합&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-end=&quot;303&quot; data-start=&quot;266&quot; data-ke-size=&quot;size16&quot;&gt;조건을 &lt;b&gt;만족하면 1,&lt;/b&gt; &lt;b&gt;만족하지 않으면 2&lt;/b&gt;를 반환하면 됩니다.&lt;/p&gt;
&lt;hr data-end=&quot;308&quot; data-start=&quot;305&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;321&quot; data-start=&quot;310&quot; data-ke-size=&quot;size26&quot;&gt;  접근 방법&lt;/h2&gt;
&lt;p data-end=&quot;359&quot; data-start=&quot;323&quot; data-ke-size=&quot;size16&quot;&gt;배열을 오름차순으로 정렬하면 &lt;b&gt;마지막 원소가 가장 긴 변&lt;/b&gt;이 됩니다.&lt;/p&gt;
&lt;p data-end=&quot;414&quot; data-start=&quot;361&quot; data-ke-size=&quot;size16&quot;&gt;이후 &lt;b&gt;가장 긴 변과 나머지 두 변의 합&lt;/b&gt;을 비교하면 &lt;b&gt;삼각형 성립 여부&lt;/b&gt;를 쉽게 판단할 수 있습니다.&lt;/p&gt;
&lt;hr data-end=&quot;419&quot; data-start=&quot;416&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;434&quot; data-start=&quot;421&quot; data-ke-size=&quot;size26&quot;&gt;  핵심 아이디어&lt;/h2&gt;
&lt;p data-end=&quot;450&quot; data-start=&quot;436&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 배열 정렬하기&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;482&quot; data-start=&quot;452&quot; data-ke-size=&quot;size16&quot;&gt;가장 긴 변을 쉽게 찾기 위해 &lt;b&gt;오름차순으로&lt;/b&gt; 정렬합니다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;Arrays.sort(sides);&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;521&quot; data-start=&quot;517&quot; data-ke-size=&quot;size16&quot;&gt;정렬 후&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;589&quot; data-start=&quot;523&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;545&quot; data-start=&quot;523&quot;&gt;&lt;b&gt;sides[0]&lt;/b&gt; &amp;rarr; 가장 짧은 변&lt;/li&gt;
&lt;li data-end=&quot;567&quot; data-start=&quot;546&quot;&gt;&lt;b&gt;sides[1]&lt;/b&gt; &amp;rarr; 두 번째 변&lt;/li&gt;
&lt;li data-end=&quot;589&quot; data-start=&quot;568&quot;&gt;&lt;b&gt;sides[2]&lt;/b&gt; &amp;rarr; 가장 긴 변&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;594&quot; data-start=&quot;591&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-end=&quot;612&quot; data-start=&quot;596&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 삼각형 조건 확인&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;652&quot; data-start=&quot;614&quot; data-ke-size=&quot;size16&quot;&gt;삼각형은 가장 긴 변이 나머지 두 변의 합보다 반드시 작아야 합니다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;return sides[2] &amp;lt; sides[0] + sides[1] ? 1 : 2;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;747&quot; data-start=&quot;714&quot; data-ke-size=&quot;size16&quot;&gt;조건을 만족하면 1, 그렇지 않으면 2를 반환합니다.&lt;/p&gt;
&lt;hr data-end=&quot;752&quot; data-start=&quot;749&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;765&quot; data-start=&quot;754&quot; data-ke-size=&quot;size26&quot;&gt;  전체 코드&lt;/h2&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;import java.util.Arrays;

class Solution {
    public int solution(int[] sides) {
        Arrays.sort(sides);

        return sides[2] &amp;lt; sides[0] + sides[1] ? 1 : 2;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;957&quot; data-start=&quot;954&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;967&quot; data-start=&quot;959&quot; data-ke-size=&quot;size26&quot;&gt;  정리&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;1126&quot; data-end=&quot;1255&quot;&gt;
&lt;li data-start=&quot;1126&quot; data-end=&quot;1166&quot;&gt;Arrays.sort()를 이용하면 최댓값을 쉽게 찾을 수 있다.&lt;/li&gt;
&lt;li data-start=&quot;1167&quot; data-end=&quot;1213&quot;&gt;삼각형은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;가장 긴 변 &amp;lt; 나머지 두 변의 합&lt;/b&gt;이라는 조건만 확인하면 된다.&lt;/li&gt;
&lt;li data-start=&quot;1214&quot; data-end=&quot;1255&quot;&gt;간단한 조건문은 삼항 연산자를 사용하면 더욱 깔끔하게 작성할 수 있다&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>코테(Solved.ac + Programmers)</category>
      <category>java</category>
      <category>Leevel</category>
      <category>프로그래머스</category>
      <author>PUSH &amp;rarr; MERGE &amp;rarr; DEPLOY</author>
      <guid isPermaLink="true">https://dongin97.tistory.com/374</guid>
      <comments>https://dongin97.tistory.com/374#entry374comment</comments>
      <pubDate>Fri, 10 Jul 2026 20:49:55 +0900</pubDate>
    </item>
    <item>
      <title>프로그래머스 문자열안에 문자열 JAVA 풀이 (Level 0)</title>
      <link>https://dongin97.tistory.com/372</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;  문제 링크&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[프로그래머스&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;programmers.co.kr](&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120908&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/120908&lt;/a&gt;)&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;p data-ke-size=&quot;size16&quot;&gt;문자열 str1, str2가 매개변수로 주어집니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;str1 안에 str2가 포함되어 있으면 &lt;b&gt;1&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;포함되어 있지 않으면 &lt;b&gt;2&lt;/b&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;p data-ke-size=&quot;size16&quot;&gt;이 문제는 &lt;b&gt;문자열 포함 여부를 확인하는 문제&lt;/b&gt;입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Java에서는 String 클래스의 &lt;b&gt;contains()&lt;/b&gt; 메서드를 제공하므로 직접 반복문을 이용해 문자열을 비교할 필요가 없습니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;str1.&lt;b&gt;contains(str2)&lt;/b&gt;를 호출합니다.&lt;/li&gt;
&lt;li&gt;포함되어 &lt;b&gt;있으면 true&lt;/b&gt;, &lt;b&gt;아니면 false&lt;/b&gt;를 반환합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;삼항 연산자&lt;/b&gt;를 이용해 1 또는 2를 반환합니다.&lt;/li&gt;
&lt;/ol&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. contains()로 문자열 포함 여부 확인&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문자열 안에 특정 문자열이 존재하는지 간단하게 확인할 수 있습니다.&lt;/p&gt;
&lt;pre class=&quot;applescript&quot;&gt;&lt;code&gt;str1.contains(str2)&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;포함되어 있으면 true&lt;/li&gt;
&lt;li&gt;포함되어 있지 않으면 false 를 반환합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&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;문제에서 요구하는 반환값으로 변환합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;true &amp;rarr; 1&lt;/li&gt;
&lt;li&gt;false &amp;rarr; 2&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;return str1.contains(str2) ? 1 : 2;&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  전체 코드&lt;/h3&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;class Solution {
    public int solution(String str1, String str2) {
        return str1.contains(str2) ? 1 : 2;
    }
}&lt;/code&gt;&lt;/pre&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;&lt;b&gt;contains()&lt;/b&gt;를 사용하면 문자열 포함 여부를 간단하게 확인할 수 있다.&lt;/li&gt;
&lt;li&gt;문자열을 직접 탐색하는 반복문을 구현할 필요가 없다.&lt;/li&gt;
&lt;li&gt;contains()는 &lt;b&gt;대소문자를 구분&lt;/b&gt;하여 비교한다.&lt;/li&gt;
&lt;li&gt;단순히 포함 여부만 확인하는 문제에서는 &lt;b&gt;contains()가 가장 직관적이고 가독성&lt;/b&gt;이 좋은 방법이다.&lt;/li&gt;
&lt;li&gt;Java에서 제공하는 &lt;b&gt;String 메서드를 적극 활용&lt;/b&gt;하면 코드가 더욱 간결해진다.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>코테(Solved.ac + Programmers)</category>
      <category>contains</category>
      <category>java</category>
      <category>level0</category>
      <category>string</category>
      <category>문자열</category>
      <category>알고리즘</category>
      <category>코딩테스트</category>
      <category>프로그래머스</category>
      <author>PUSH &amp;rarr; MERGE &amp;rarr; DEPLOY</author>
      <guid isPermaLink="true">https://dongin97.tistory.com/372</guid>
      <comments>https://dongin97.tistory.com/372#entry372comment</comments>
      <pubDate>Thu, 9 Jul 2026 23:54:28 +0900</pubDate>
    </item>
    <item>
      <title>프로그래머스 크레인 인형뽑기 게임 JAVA 풀이 (2019 카카오 개발자 겨울 인턴십)</title>
      <link>https://dongin97.tistory.com/370</link>
      <description>&lt;h3 data-end=&quot;740&quot; data-start=&quot;728&quot; data-ke-size=&quot;size23&quot;&gt;  문제 링크&lt;/h3&gt;
&lt;figure id=&quot;og_1783485797392&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;프로그래머스&quot; data-og-description=&quot;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/64061&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/eMr7r/dJMb9dHzMaZ/cAljTeX5UiI4MpA7fEHoO0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/boPL0K/dJMb9dHzMaY/ySKhot631DEvj02ljGb9aK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/64061&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/64061&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/eMr7r/dJMb9dHzMaZ/cAljTeX5UiI4MpA7fEHoO0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/boPL0K/dJMb9dHzMaY/ySKhot631DEvj02ljGb9aK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr data-end=&quot;942&quot; data-start=&quot;939&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;956&quot; data-start=&quot;944&quot; data-ke-size=&quot;size23&quot;&gt;  문제 개요&lt;/h3&gt;
&lt;p data-end=&quot;1006&quot; data-start=&quot;958&quot; data-ke-size=&quot;size16&quot;&gt;크레인을&lt;b&gt; 좌우로 이동&lt;/b&gt;시키며 &lt;b&gt;선택한 열의 가장 위에 있는 인형&lt;/b&gt;을 뽑아 바구니에 담습니다.&lt;/p&gt;
&lt;p data-end=&quot;1050&quot; data-start=&quot;1008&quot; data-ke-size=&quot;size16&quot;&gt;바구니에 &lt;b&gt;같은 모양&lt;/b&gt;의 인형이 &lt;b&gt;연속해서 들어오면 두 인형이 터지며 사라집니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;1050&quot; data-start=&quot;1008&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1091&quot; data-start=&quot;1052&quot; data-ke-size=&quot;size16&quot;&gt;모든 크레인 동작이 끝난 뒤 &lt;b&gt;사라진 인형의 개수를 반환&lt;/b&gt;하는 문제입니다.&lt;/p&gt;
&lt;hr data-end=&quot;1096&quot; data-start=&quot;1093&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;1110&quot; data-start=&quot;1098&quot; data-ke-size=&quot;size23&quot;&gt;  접근 방법&lt;/h3&gt;
&lt;p data-end=&quot;1159&quot; data-start=&quot;1112&quot; data-ke-size=&quot;size16&quot;&gt;이 문제는 &lt;b&gt;시뮬레이션&lt;/b&gt;과 &lt;b&gt;Stack&lt;/b&gt;을 함께 사용하는 대표적인 문제입니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-end=&quot;1394&quot; data-start=&quot;1161&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-end=&quot;1196&quot; data-start=&quot;1161&quot;&gt;moves를 순회하며 크&lt;b&gt;레인이 이동할 열&lt;/b&gt;을 선택합니다.&lt;/li&gt;
&lt;li data-end=&quot;1239&quot; data-start=&quot;1197&quot;&gt;해당 열을 &lt;b&gt;위에서 아래로 탐색&lt;/b&gt;하여&lt;b&gt; 가장 먼저 발견되는 인형&lt;/b&gt;을 찾습니다.&lt;/li&gt;
&lt;li data-end=&quot;1271&quot; data-start=&quot;1240&quot;&gt;인형을 꺼낸 뒤 &lt;b&gt;해당 위치를 0으로 변경&lt;/b&gt;합니다.&lt;/li&gt;
&lt;li data-end=&quot;1353&quot; data-start=&quot;1272&quot;&gt;바구니(Stack)의&lt;b&gt; 가장 위 인형&lt;/b&gt;과 비교합니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1353&quot; data-start=&quot;1306&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1330&quot; data-start=&quot;1306&quot;&gt;&lt;b&gt;같으면 제거하고 answer += 2&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;1353&quot; data-start=&quot;1334&quot;&gt;&lt;b&gt;다르면 Stack에 추가합니다&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;1394&quot; data-start=&quot;1354&quot;&gt;인형 하나를 처리했다면&lt;b&gt; break로 다음 move&lt;/b&gt;를 수행합니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-end=&quot;1399&quot; data-start=&quot;1396&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;1415&quot; data-start=&quot;1401&quot; data-ke-size=&quot;size23&quot;&gt;  핵심 아이디어&lt;/h3&gt;
&lt;p data-end=&quot;1440&quot; data-start=&quot;1417&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 바구니는 Stack으로 구현&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;1486&quot; data-start=&quot;1442&quot; data-ke-size=&quot;size16&quot;&gt;바구니는 마지막에 들어간 인형과만 비교하면 되므로 Stack이 가장 적합합니다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;lasso&quot;&gt;&lt;code&gt;Stack&amp;lt;Integer&amp;gt; basket = new Stack&amp;lt;&amp;gt;();&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;1543&quot; data-start=&quot;1540&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-end=&quot;1571&quot; data-start=&quot;1545&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 선택한 열에서 가장 위 인형 찾기&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;1598&quot; data-start=&quot;1573&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;열은 고정&lt;/b&gt;하고 &lt;b&gt;행을 위에서 아래&lt;/b&gt;로 탐색합니다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;maxima&quot;&gt;&lt;code&gt;for (int row = 0; row &amp;lt; board.length; row++) {
    if (board[row][col] != 0) {
        ...
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;1715&quot; data-start=&quot;1712&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-end=&quot;1733&quot; data-start=&quot;1717&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 인형 제거 처리&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;1771&quot; data-start=&quot;1735&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;같은 인형&lt;/b&gt;이 연속되면 &lt;b&gt;Stack&lt;/b&gt;에서 &lt;b&gt;제거하고 개수를 증가&lt;/b&gt;시킵니다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;armasm&quot;&gt;&lt;code&gt;if (!basket.isEmpty() &amp;amp;&amp;amp; basket.peek() == doll) {
    basket.pop();
    answer += 2;
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;1876&quot; data-start=&quot;1873&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-end=&quot;1902&quot; data-start=&quot;1878&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. 이미 뽑은 인형은 0으로 변경&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;1927&quot; data-start=&quot;1904&quot; data-ke-size=&quot;size16&quot;&gt;같은 인형을 &lt;b&gt;다시 뽑지 않도록 처리&lt;/b&gt;합니다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;markdown&quot;&gt;&lt;code&gt;board[row][col] = 0;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;1966&quot; data-start=&quot;1963&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-end=&quot;1992&quot; data-start=&quot;1968&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;5. 인형 하나를 뽑으면 탐색 종료&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;2025&quot; data-start=&quot;1994&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;한 번의 크레인 동작&lt;/b&gt;은 &lt;b&gt;인형 하나만 가져갈 수 있습니다.&lt;/b&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;kotlin&quot;&gt;&lt;code&gt;break;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;2050&quot; data-start=&quot;2047&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;2064&quot; data-start=&quot;2052&quot; data-ke-size=&quot;size23&quot;&gt;  전체 코드&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;pgsql&quot;&gt;&lt;code&gt;import java.util.Stack;

class Solution {
    public int solution(int[][] board, int[] moves) {
        int answer = 0;
        Stack&amp;lt;Integer&amp;gt; basket = new Stack&amp;lt;&amp;gt;();

        for (int move : moves) {
            int col = move - 1;

            for (int row = 0; row &amp;lt; board.length; row++) {
                if (board[row][col] != 0) {
                    int doll = board[row][col];
                    board[row][col] = 0;

                    if (!basket.isEmpty() &amp;amp;&amp;amp; basket.peek() == doll) {
                        basket.pop();
                        answer += 2;
                    } else {
                        basket.push(doll);
                    }

                    break;
                }
            }
        }

        return answer;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;2850&quot; data-start=&quot;2847&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;2861&quot; data-start=&quot;2852&quot; data-ke-size=&quot;size23&quot;&gt;  정리&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3072&quot; data-start=&quot;2863&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2907&quot; data-start=&quot;2863&quot;&gt;Stack을 사용하면 바구니의 마지막 인형을 효율적으로 관리할 수 있다.&lt;/li&gt;
&lt;li data-end=&quot;2948&quot; data-start=&quot;2908&quot;&gt;&lt;b&gt;peek()로 같은 인형인지 확인하고 pop()으로 제거한다.&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;2986&quot; data-start=&quot;2949&quot;&gt;인형을 뽑은 위치는 0으로 변경해야 &lt;b&gt;중복으로 뽑히지 않는다.&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;3034&quot; data-start=&quot;2987&quot;&gt;한 번의 크레인 동작에서는&lt;b&gt; 인형 하나만 뽑으므로 break&lt;/b&gt;가 반드시 필요하다.&lt;/li&gt;
&lt;li data-end=&quot;3072&quot; data-start=&quot;3035&quot;&gt;시뮬레이션과 Stack을 함께 연습하기 좋은 대표적인 문제이다.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>코테(Solved.ac + Programmers)</category>
      <category>java</category>
      <category>level1</category>
      <category>stack</category>
      <category>구현</category>
      <category>스택</category>
      <category>시뮬레이션</category>
      <category>자료구조</category>
      <category>프로그래머스</category>
      <author>PUSH &amp;rarr; MERGE &amp;rarr; DEPLOY</author>
      <guid isPermaLink="true">https://dongin97.tistory.com/370</guid>
      <comments>https://dongin97.tistory.com/370#entry370comment</comments>
      <pubDate>Wed, 8 Jul 2026 13:47:14 +0900</pubDate>
    </item>
    <item>
      <title>프로그래머스 택배 상자 꺼내기 JAVA 풀이 (2025 코드 챌린지)</title>
      <link>https://dongin97.tistory.com/368</link>
      <description>&lt;h3 data-end=&quot;685&quot; data-start=&quot;673&quot; data-ke-size=&quot;size23&quot;&gt;  문제 링크&lt;/h3&gt;
&lt;figure id=&quot;og_1783426259836&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;프로그래머스&quot; data-og-description=&quot;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/389478&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/jpFEh/dJMb8VNHkGz/R3OBaRgU2kmwspFzwUiEpK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/hRBxX/dJMb84qj83N/eXGLOTmFSbbA2pGoTMedHk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/389478&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/389478&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/jpFEh/dJMb8VNHkGz/R3OBaRgU2kmwspFzwUiEpK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/hRBxX/dJMb84qj83N/eXGLOTmFSbbA2pGoTMedHk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr data-end=&quot;804&quot; data-start=&quot;801&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;818&quot; data-start=&quot;806&quot; data-ke-size=&quot;size23&quot;&gt;  문제 개요&lt;/h3&gt;
&lt;p data-end=&quot;861&quot; data-start=&quot;820&quot; data-ke-size=&quot;size16&quot;&gt;창고에 택배 상자를 &lt;b&gt;지그재그(좌&amp;rarr;우, 우&amp;rarr;좌 반복)&lt;/b&gt; 형태로 쌓는다.&lt;/p&gt;
&lt;p data-end=&quot;919&quot; data-start=&quot;863&quot; data-ke-size=&quot;size16&quot;&gt;꺼내려는 상자가 주어졌을 때 해당 상자를 포함하여 &lt;b&gt;총 몇 개의 상자를 꺼내야 하는지&lt;/b&gt; 구하는 문제이다.&lt;/p&gt;
&lt;p data-end=&quot;919&quot; data-start=&quot;863&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;965&quot; data-start=&quot;921&quot; data-ke-size=&quot;size16&quot;&gt;예를 들어 &lt;b&gt;같은 열에 위쪽에 있는 상자가 있다면 그 상자부터 먼저 꺼내야 한다.&lt;/b&gt;&lt;/p&gt;
&lt;hr data-end=&quot;970&quot; data-start=&quot;967&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;984&quot; data-start=&quot;972&quot; data-ke-size=&quot;size23&quot;&gt;  접근 방법&lt;/h3&gt;
&lt;p data-end=&quot;1039&quot; data-start=&quot;986&quot; data-ke-size=&quot;size16&quot;&gt;이 문제의 핵심은 &lt;b&gt;상자의 번호를 2차원 좌표(row, column)로 변환하는 것&lt;/b&gt;이다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-end=&quot;1208&quot; data-start=&quot;1041&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-end=&quot;1072&quot; data-start=&quot;1041&quot;&gt;상자의 &lt;b&gt;행(row)&lt;/b&gt;과 &lt;b&gt;열(column)&lt;/b&gt;을 계산한다.&lt;/li&gt;
&lt;li data-end=&quot;1108&quot; data-start=&quot;1073&quot;&gt;&lt;b&gt;홀수 행&lt;/b&gt;은&lt;b&gt; 역방향&lt;/b&gt;으로 배치되므로 실제 열 위치를 변환한다.&lt;/li&gt;
&lt;li data-end=&quot;1140&quot; data-start=&quot;1109&quot;&gt;현재 상자와&lt;b&gt; 같은 열에 있는 위쪽 상자&lt;/b&gt;들을 찾는다.&lt;/li&gt;
&lt;li data-end=&quot;1184&quot; data-start=&quot;1141&quot;&gt;&lt;b&gt;마지막 행&lt;/b&gt;은 상자가 부족할 수 있으므로 &lt;b&gt;실제 존재하는 상자인지 확인&lt;/b&gt;한다.&lt;/li&gt;
&lt;li data-end=&quot;1208&quot; data-start=&quot;1185&quot;&gt;&lt;b&gt;현재 상자를 포함한 개수를 반환&lt;/b&gt;한다.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-end=&quot;1213&quot; data-start=&quot;1210&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;1229&quot; data-start=&quot;1215&quot; data-ke-size=&quot;size23&quot;&gt;  핵심 아이디어&lt;/h3&gt;
&lt;p data-end=&quot;1246&quot; data-start=&quot;1231&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 행과 열 계산&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;1246&quot; data-start=&quot;1231&quot; data-ke-size=&quot;size16&quot;&gt;상자의 위치를 &lt;b&gt;2차원 좌표&lt;/b&gt;로 변환한다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;int row = (num - 1) / w;
int col = (num - 1) % w;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;1337&quot; data-start=&quot;1334&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-end=&quot;1357&quot; data-start=&quot;1339&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 지그재그 방향 처리&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;1374&quot; data-start=&quot;1359&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;짝수 행&lt;/b&gt;은 그대로 사용한다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;basic&quot;&gt;&lt;code&gt;1 2 3 4&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;1408&quot; data-start=&quot;1393&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;홀수 행&lt;/b&gt;은 반대로 배치된다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;basic&quot;&gt;&lt;code&gt;8 7 6 5&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;1430&quot; data-start=&quot;1427&quot; data-ke-size=&quot;size16&quot;&gt;따라서 실제 열을 맞춰준다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;if(row % 2 == 1){
    col = w - 1 - col;
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;1502&quot; data-start=&quot;1488&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-end=&quot;1507&quot; data-start=&quot;1504&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-end=&quot;1525&quot; data-start=&quot;1509&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 같은 열만 확인&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;1559&quot; data-start=&quot;1527&quot; data-ke-size=&quot;size16&quot;&gt;현재 상자를 막는 것은 &lt;b&gt;같은 열에 있는 상자뿐&lt;/b&gt;이다.&lt;/p&gt;
&lt;p data-end=&quot;1603&quot; data-start=&quot;1561&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;위쪽 행을 하나씩 검사&lt;/b&gt;하면서 해당 위치에&lt;b&gt; 상자가 존재하면 개수를 증가&lt;/b&gt;시킨다.&lt;/p&gt;
&lt;hr data-end=&quot;1608&quot; data-start=&quot;1605&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-end=&quot;1629&quot; data-start=&quot;1610&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. 마지막 행 예외 처리&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;1654&quot; data-start=&quot;1631&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;마지막 행&lt;/b&gt;은 항상 가득 차는 것이 아니다.&lt;/p&gt;
&lt;p data-end=&quot;1689&quot; data-start=&quot;1656&quot; data-ke-size=&quot;size16&quot;&gt;따라서 계산한 번호가 &lt;b&gt;n을 초과하는지 확인&lt;/b&gt;해야 한다.&lt;/p&gt;
&lt;hr data-end=&quot;1694&quot; data-start=&quot;1691&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;1708&quot; data-start=&quot;1696&quot; data-ke-size=&quot;size23&quot;&gt;  전체 코드&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;java&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;class Solution {
    public int solution(int n, int w, int num) {
        int row = (num - 1) / w;
        int col = (num - 1) % w;

        // 현재 상자의 실제 열 위치
        if (row % 2 == 1) {
            col = w - 1 - col;
        }

        int answer = 1; // 현재 상자 포함

        int lastRow = (n - 1) / w;

        // 현재 상자 위의 행만 확인
        for (int r = row + 1; r &amp;lt;= lastRow; r++) {
            int box;

            if (r % 2 == 0) {
                box = r * w + col + 1;
            } else {
                box = r * w + (w - col);
            }

            if (box &amp;lt;= n) {
                answer++;
            }
        }

        return answer;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;1738&quot; data-start=&quot;1735&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;1749&quot; data-start=&quot;1740&quot; data-ke-size=&quot;size23&quot;&gt;  정리&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1941&quot; data-start=&quot;1751&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1790&quot; data-start=&quot;1751&quot;&gt;상자 번호를 좌표(&lt;b&gt;row, column&lt;/b&gt;)로 변환하는 것이 핵심이다.&lt;/li&gt;
&lt;li data-end=&quot;1827&quot; data-start=&quot;1791&quot;&gt;홀수 행은 역방향 배치이므로 열 위치를 반대로 계산해야 한다.&lt;/li&gt;
&lt;li data-end=&quot;1855&quot; data-start=&quot;1828&quot;&gt;현재 상자를 막는 것은 같은 열의 상자뿐이다.&lt;/li&gt;
&lt;li data-end=&quot;1897&quot; data-start=&quot;1856&quot;&gt;마지막 행이 비어 있을 수 있으므로 존재 여부를 반드시 확인해야 한다.&lt;/li&gt;
&lt;li data-end=&quot;1941&quot; data-start=&quot;1898&quot;&gt;구현 자체는 어렵지 않지만 좌표 변환과 예외 처리가 핵심인 구현 문제였다.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>코테(Solved.ac + Programmers)</category>
      <category>2차원배열</category>
      <category>java</category>
      <category>level1</category>
      <category>구현</category>
      <category>시뮬레이션</category>
      <category>좌표변환</category>
      <category>코딩테스트</category>
      <category>프로그래머스</category>
      <author>PUSH &amp;rarr; MERGE &amp;rarr; DEPLOY</author>
      <guid isPermaLink="true">https://dongin97.tistory.com/368</guid>
      <comments>https://dongin97.tistory.com/368#entry368comment</comments>
      <pubDate>Tue, 7 Jul 2026 21:15:21 +0900</pubDate>
    </item>
    <item>
      <title>프로그래머스 문자열 안의 숫자 더하기 JAVA 풀이 (문자열, 구현, 아스키코드)</title>
      <link>https://dongin97.tistory.com/366</link>
      <description>&lt;h3 data-end=&quot;61&quot; data-start=&quot;49&quot; data-ke-size=&quot;size23&quot;&gt;  문제 링크&lt;/h3&gt;
&lt;figure id=&quot;og_1783234198677&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;프로그래머스&quot; data-og-description=&quot;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120851&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/C0Qrt/dJMb8QMnwZ5/KUeBFa6hdRxIY2LhW9CIKk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/dGeb16/dJMb8VNG4Kz/ViFUACxGAAJSw3k52LpCq1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120851&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/120851&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/C0Qrt/dJMb8QMnwZ5/KUeBFa6hdRxIY2LhW9CIKk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/dGeb16/dJMb8VNG4Kz/ViFUACxGAAJSw3k52LpCq1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr data-end=&quot;218&quot; data-start=&quot;215&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;232&quot; data-start=&quot;220&quot; data-ke-size=&quot;size23&quot;&gt;  문제 개요&lt;/h3&gt;
&lt;p data-end=&quot;290&quot; data-start=&quot;234&quot; data-ke-size=&quot;size16&quot;&gt;문자열 my_string이 주어질 때, 문자열에 포함된 &lt;b&gt;모든 숫자의 합&lt;/b&gt;을 구하는 문제이다.&lt;/p&gt;
&lt;p data-end=&quot;342&quot; data-start=&quot;292&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;알파벳은 무시&lt;/b&gt;하고 &lt;b&gt;숫자(0~9)만 찾아 각각의 값을 더한 뒤 결과를 반환&lt;/b&gt;하면 된다.&lt;/p&gt;
&lt;p data-end=&quot;342&quot; data-start=&quot;292&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;413&quot; data-start=&quot;344&quot; data-ke-size=&quot;size16&quot;&gt;예를 들어 &quot;&lt;b&gt;aAb1B2cC34oOp&lt;/b&gt;&quot;가 입력되면 숫자는 &lt;b&gt;1, 2, 3, 4이므로 결과는 10&lt;/b&gt;이 된다.&lt;/p&gt;
&lt;hr data-end=&quot;418&quot; data-start=&quot;415&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;432&quot; data-start=&quot;420&quot; data-ke-size=&quot;size23&quot;&gt;  접근 방법&lt;/h3&gt;
&lt;p data-end=&quot;465&quot; data-start=&quot;434&quot; data-ke-size=&quot;size16&quot;&gt;문자열을 처음부터 끝까지 순회하면서 각 문자를 확인한다.&lt;/p&gt;
&lt;p data-end=&quot;519&quot; data-start=&quot;467&quot; data-ke-size=&quot;size16&quot;&gt;현재 문자가 숫자인지 판단하기 위해 &lt;b&gt;'0' 이상 '9' 이하인지 범위 비교&lt;/b&gt;를 수행한다.&lt;/p&gt;
&lt;p data-end=&quot;519&quot; data-start=&quot;467&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;565&quot; data-start=&quot;521&quot; data-ke-size=&quot;size16&quot;&gt;숫자라면 문자에서 &lt;b&gt;'0'&lt;/b&gt;을 빼 실제 &lt;b&gt;정수 값으로 변환한 뒤 결과에 누적&lt;/b&gt;한다.&lt;/p&gt;
&lt;p data-end=&quot;623&quot; data-start=&quot;567&quot; data-ke-size=&quot;size16&quot;&gt;이 방법은 &lt;b&gt;숫자를 하나씩 비교하는 것보다 코드가 간결&lt;/b&gt;하며, 코딩 테스트에서도 자주 사용되는 방식이다.&lt;/p&gt;
&lt;hr data-end=&quot;628&quot; data-start=&quot;625&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;644&quot; data-start=&quot;630&quot; data-ke-size=&quot;size23&quot;&gt;  핵심 아이디어&lt;/h3&gt;
&lt;p data-end=&quot;669&quot; data-start=&quot;646&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 문자열을 한 글자씩 순회하기&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;669&quot; data-start=&quot;646&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; charAt()&lt;/b&gt;을 이용해 문자열의 각 문자를 차례대로 확인한다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;matlab&quot;&gt;&lt;code&gt;for (int i = 0; i &amp;lt; my_string.length(); i++) {
    char c = my_string.charAt(i);
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;809&quot; data-start=&quot;806&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-end=&quot;831&quot; data-start=&quot;811&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 숫자인지 범위 비교하기&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;831&quot; data-start=&quot;811&quot; data-ke-size=&quot;size16&quot;&gt;문자는 내부적으로 &lt;b&gt;아스키 코드(유니코드)&lt;/b&gt; 값을 가지므로 범위 비교가 가능하다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;less&quot;&gt;&lt;code&gt;if (c &amp;gt;= '0' &amp;amp;&amp;amp; c &amp;lt;= '9')&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;따라서&lt;b&gt; '0' 이상 '9' 이하&lt;/b&gt;라면 숫자로 판단할 수 있다.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;lsl&quot;&gt;&lt;code&gt;'0' &amp;rarr; 48
'1' &amp;rarr; 49
...
'9' &amp;rarr; 57&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;999&quot; data-start=&quot;996&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-end=&quot;1024&quot; data-start=&quot;1001&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 문자 숫자를 정수로 변환하기&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1058&quot; data-end=&quot;1097&quot;&gt;문자 '3'은 실제 숫자 3이 아니라 &lt;b&gt;문자 코드값 51&lt;/b&gt;이다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1099&quot; data-end=&quot;1118&quot;&gt;&lt;b&gt;'0'&lt;/b&gt;의 &lt;b&gt;코드값은 48&lt;/b&gt;이므로 숫자로 변환된다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;makefile&quot;&gt;&lt;code&gt;result += c - '0';&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;asciidoc&quot;&gt;&lt;code&gt;'3' - '0'
= 51 - 48
= 3&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;asciidoc&quot;&gt;&lt;code&gt;'7' - '0'
= 55 - 48
= 7&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;1247&quot; data-start=&quot;1210&quot; data-ke-size=&quot;size16&quot;&gt;이 원리는 코딩 테스트에서 &lt;b&gt;매우 자주 활용되는 문자 처리 기법&lt;/b&gt;이다.&lt;/p&gt;
&lt;hr data-end=&quot;1252&quot; data-start=&quot;1249&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;1266&quot; data-start=&quot;1254&quot; data-ke-size=&quot;size23&quot;&gt;  전체 코드&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;arduino&quot;&gt;&lt;code&gt;public class Solution {
    public int solution(String my_string) {
        int result = 0;

        for (int i = 0; i &amp;lt; my_string.length(); i++) {
            char c = my_string.charAt(i);

            if (c &amp;gt;= '0' &amp;amp;&amp;amp; c &amp;lt;= '9') {
                result += c - '0';
            }
        }

        return result;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;1606&quot; data-start=&quot;1603&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;1617&quot; data-start=&quot;1608&quot; data-ke-size=&quot;size23&quot;&gt;  정리&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1823&quot; data-start=&quot;1619&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1652&quot; data-start=&quot;1619&quot;&gt;문자열을 순회하면서&lt;b&gt; 숫자만 찾아 합산하는 구현 문제&lt;/b&gt;이다.&lt;/li&gt;
&lt;li data-end=&quot;1703&quot; data-start=&quot;1653&quot;&gt;&lt;b&gt;'0' &amp;lt;= c &amp;lt;= '9'&lt;/b&gt; 범위 비교를 사용하면 숫자를 간결하게 판별할 수 있다.&lt;/li&gt;
&lt;li data-end=&quot;1750&quot; data-start=&quot;1704&quot;&gt;&lt;b&gt;c - '0'&lt;/b&gt; 연산을 통해 &lt;b&gt;문자 형태의 숫자를 실제 정수로 변환&lt;/b&gt;할 수 있다.&lt;/li&gt;
&lt;li data-end=&quot;1823&quot; data-start=&quot;1751&quot;&gt;아스키 코드(유니코드) 기반의 문자 연산은 다양한 문자열 문제에서 자주 활용되므로 익혀두면 많은 문제를 쉽게 해결할 수 있다.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>코테(Solved.ac + Programmers)</category>
      <category>Algorithm</category>
      <category>char</category>
      <category>java</category>
      <category>구현</category>
      <category>문자열</category>
      <category>아스키코드</category>
      <category>코딩테스트</category>
      <category>프로그래머스</category>
      <author>PUSH &amp;rarr; MERGE &amp;rarr; DEPLOY</author>
      <guid isPermaLink="true">https://dongin97.tistory.com/366</guid>
      <comments>https://dongin97.tistory.com/366#entry366comment</comments>
      <pubDate>Sun, 5 Jul 2026 16:02:18 +0900</pubDate>
    </item>
  </channel>
</rss>