<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>내가 다시 보려고 올리는 블로그</title>
    <link>https://dailycoding-diary.tistory.com/</link>
    <description>내가다시 보려고 올리는 블로그</description>
    <language>ko</language>
    <pubDate>Wed, 8 Jul 2026 20:06:42 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>비전공출신개발자</managingEditor>
    <item>
      <title>[알고리즘] 백준 1193 분수찾기 Java 실버5</title>
      <link>https://dailycoding-diary.tistory.com/105</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1193&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.acmicpc.net/problem/1193&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1694271739782&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;1193번: 분수찾기&quot; data-og-description=&quot;첫째 줄에 X(1 &amp;le; X &amp;le; 10,000,000)가 주어진다.&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/1193&quot; data-og-url=&quot;https://www.acmicpc.net/problem/1193&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Yz0sx/hyTSoFwN6F/3e4wkLSmH1u9NqrAyP6fKk/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1193&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/1193&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Yz0sx/hyTSoFwN6F/3e4wkLSmH1u9NqrAyP6fKk/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&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;1193번: 분수찾기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에 X(1 &amp;le; X &amp;le; 10,000,000)가 주어진다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1694271768507&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int X = sc.nextInt();
        int cnt = 0;
        boolean flag = false;
        //짝수 분자 증가(위,아래) , 홀수 분자 감소(아래,위)
        for(int i=1; i &amp;lt;= 10000000; i++){
            if(flag) return;
            cnt += i;
            if(cnt &amp;gt;= X){
                cnt -= i;
                int a = 1;
                int b = i;
                while(true){
                    cnt++;
                    if(cnt == X){
                        if(i % 2 ==0){
                            System.out.println(&quot;&quot; + a + &quot;/&quot; + b);
                        }else{
                            System.out.println(&quot;&quot; + b + &quot;/&quot; + a);
                        }
                        flag = true;
                        return;
                    }else{
                        a++;
                        b--;

                    }
                }

            }
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 풀이&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;358&quot; data-origin-height=&quot;255&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3cczV/btstq8wQ3fA/XnigCt7H3yMh69wKJD5rD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3cczV/btstq8wQ3fA/XnigCt7H3yMh69wKJD5rD1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3cczV/btstq8wQ3fA/XnigCt7H3yMh69wKJD5rD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3cczV%2Fbtstq8wQ3fA%2FXnigCt7H3yMh69wKJD5rD1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;358&quot; height=&quot;255&quot; data-origin-width=&quot;358&quot; data-origin-height=&quot;255&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;규칙을 먼저 찾아야 한다. 규칙은 대각선방향으로 순서대로 움직임&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1 : 1/1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2 : 1/2 , 2/1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3 : 3/1, 2/2, 1/3&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4 : 1/4, 2/3, 3/2, 4/1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;.........&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;짝수는 위에서 아래로 홀수그룹은 아래에서 위로 움직이게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 어떤그룹인지 먼저 찾는다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 1부터 ~ 10000000 까지 loop 돌면서 합이 X와 크거나 같은 그룹을 찾는다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 같은 그룹을 찾게 되면 해당 그룹을 loop 돌면서 입력받은 값과 같은 번호를 찾는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - a 는 1번부터 증가, b는 그룹 번호 부터 감소시켜 나간다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 홀수는 b/a 짝수는 a/b 로 출력한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>기타/알고리즘</category>
      <category>java</category>
      <category>백준</category>
      <category>백준 1193</category>
      <category>실버5</category>
      <category>알고리즘</category>
      <category>자바</category>
      <author>비전공출신개발자</author>
      <guid isPermaLink="true">https://dailycoding-diary.tistory.com/105</guid>
      <comments>https://dailycoding-diary.tistory.com/105#entry105comment</comments>
      <pubDate>Sun, 10 Sep 2023 00:09:55 +0900</pubDate>
    </item>
    <item>
      <title>[알고리즘] 백준 1138 한줄로 서기 실버2 Java</title>
      <link>https://dailycoding-diary.tistory.com/104</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1138&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.acmicpc.net/problem/1138&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1694065523449&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;1138번: 한 줄로 서기&quot; data-og-description=&quot;첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다 &quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/1138&quot; data-og-url=&quot;https://www.acmicpc.net/problem/1138&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/fDSQp/hyTSnTw5TR/1oBguJYmMkD8qx4FfweHd1/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1138&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/1138&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/fDSQp/hyTSnTw5TR/1oBguJYmMkD8qx4FfweHd1/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&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;1138번: 한 줄로 서기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;pre id=&quot;code_1694065572445&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();

        int[] arr = new int[n];

        for(int i=0; i &amp;lt; n; i++){
            arr[i] = sc.nextInt();
        }

        LinkedList&amp;lt;Integer&amp;gt; lList = new LinkedList&amp;lt;&amp;gt;();
        for(int i=n; i &amp;gt;= 1; i--){
            int position = arr[i-1];
            lList.add(position, i);
        }
        sc.close();

        lList.forEach(val -&amp;gt;
                System.out.print(val + &quot; &quot;));


    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 풀이&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;주어진 배열 뒤부터 탐색해서 LinkedList활용해서 넣어준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(ArrayList도 사용해도된다. 하지만 ArrayList는 삽입 이후 배열을 모두 뒤로 밀어야 하기때문에 비효율적)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;( 2 1 1 0 ) -&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;1. 4번째 를 0번 인덱스 삽입 ( 4 )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;2. &lt;span style=&quot;color: #ee2323;&quot;&gt;3&lt;/span&gt;번째를 1번 인덱스 삽입 (4 &lt;span style=&quot;color: #ee2323;&quot;&gt;3&lt;/span&gt; )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. &lt;span style=&quot;color: #ee2323;&quot;&gt;2&lt;/span&gt;번째를 1번 인덱스 삽입 ( 4 &lt;span style=&quot;color: #ee2323;&quot;&gt;2&lt;/span&gt; 3)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. &lt;span style=&quot;color: #ee2323;&quot;&gt;1&lt;/span&gt;번째를 2번 인덱스 삽입 ( 4 2 &lt;span style=&quot;color: #ee2323;&quot;&gt;1&lt;/span&gt; 3)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>기타/알고리즘</category>
      <category>boj 1138</category>
      <category>java</category>
      <category>백준</category>
      <category>백준 1138</category>
      <category>실버2</category>
      <category>알고리즘</category>
      <category>자바</category>
      <author>비전공출신개발자</author>
      <guid isPermaLink="true">https://dailycoding-diary.tistory.com/104</guid>
      <comments>https://dailycoding-diary.tistory.com/104#entry104comment</comments>
      <pubDate>Thu, 7 Sep 2023 14:50:47 +0900</pubDate>
    </item>
    <item>
      <title>[알고리즘] 프로그래머스 - 짝지어제거하기 Lv02 Java</title>
      <link>https://dailycoding-diary.tistory.com/103</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12973&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/12973&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1689685364567&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;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12973&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cGIesa/hyTmv51TwX/HeUdBRdj3eOUX0V76QUkFk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/w9pCE/hyTmCjNhe5/GIRTgjkZyjVmsatr7wrgBK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12973&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12973&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cGIesa/hyTmv51TwX/HeUdBRdj3eOUX0V76QUkFk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/w9pCE/hyTmCjNhe5/GIRTgjkZyjVmsatr7wrgBK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&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;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&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;pre id=&quot;code_1689685353641&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package Programmers;

import java.util.Stack;

public class 짝지어제거하기 {
    public static void main(String[] args){
        짝지어제거하기 T = new 짝지어제거하기();
        String s = &quot;baabaa&quot;;
        T.solution(s);
    }
    public int solution(String s)
    {

        int answer = 1;
        Stack&amp;lt;Character&amp;gt; st = new Stack&amp;lt;&amp;gt;();
        for (int i = 0; i &amp;lt; s.length(); i++) {
            if(st.isEmpty()){
                st.add(s.charAt(i));
                continue;
            }
            if(st.peek() == s.charAt(i)){
                st.pop();
            }else{
                st.add(s.charAt(i));
            }
        }
        if(st.size() &amp;gt; 0){
            answer = 0;
        }
        return answer;
    }

}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 풀이&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- Stack으로 풀었음.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 앞에서 부터 하나씩 넣으면서 Peek한결과 같으면 POP해버리고&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 아니면 add 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 스택에 값이 남아있으면 0을 출력&lt;/p&gt;</description>
      <category>기타/알고리즘</category>
      <category>java</category>
      <category>알고리즘</category>
      <category>자바</category>
      <category>짝지어제거하기</category>
      <category>프로그래머스</category>
      <author>비전공출신개발자</author>
      <guid isPermaLink="true">https://dailycoding-diary.tistory.com/103</guid>
      <comments>https://dailycoding-diary.tistory.com/103#entry103comment</comments>
      <pubDate>Tue, 18 Jul 2023 22:03:56 +0900</pubDate>
    </item>
    <item>
      <title>[알고리즘] 프로그래머스 - 멀리뛰기 Java Lv02</title>
      <link>https://dailycoding-diary.tistory.com/102</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12914&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/12914&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1689410277946&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;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12914&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bC3Dds/hyTk8vBvFi/TEZdza2VdpevnjOceltC00/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/bQyOSH/hyTk1QL0Uz/sO2ZXFA3gzQhNsEcC9Oz9k/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12914&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12914&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bC3Dds/hyTk8vBvFi/TEZdza2VdpevnjOceltC00/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/bQyOSH/hyTk1QL0Uz/sO2ZXFA3gzQhNsEcC9Oz9k/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&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;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1689410291997&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package Programmers;
public class 멀리뛰기 {

    public static void main(String[] args){
        멀리뛰기 T= new 멀리뛰기();
        int n = 4;
        T.solution(n);
    }
    public long solution(int n) {
        long[] arr = new long[n + 2];

        arr[0] = 0;
        arr[1] = 1;
        arr[2] = 2;

        for (int i = 3; i &amp;lt;= n; i++) {
            arr[i] = (arr[i-1] + arr[i-2] ) % 1234567;
        }

        return arr[n];
    }


}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 풀이&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- DP로 풀어야한다. DFS, BFS는 시간초과나옴&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- n 값이 0 일때는 답이 0 개&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 1 일때는 1개&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 2 일때는 2개&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 3 일때는 3개&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 4 일때는 5개&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 5 일때는 8개&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; ........&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;규칙이 나오는데 피보나치 수열이다 arr[i-1] + arr[i-2] = arr[i]&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;2번째 배열까지는 값을 직접 박아주고 이후부터 arr에 값을 구하면된다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;구하고자하는답은 1234567을 나눈 나머지를 구하라고 하니까 arr에 넣고 마지막에 그냥 리턴해준다.&lt;/p&gt;</description>
      <category>기타/알고리즘</category>
      <category>java</category>
      <category>멀리뛰기</category>
      <category>알고리즘</category>
      <category>자바</category>
      <category>프로그래머스</category>
      <author>비전공출신개발자</author>
      <guid isPermaLink="true">https://dailycoding-diary.tistory.com/102</guid>
      <comments>https://dailycoding-diary.tistory.com/102#entry102comment</comments>
      <pubDate>Sat, 15 Jul 2023 17:41:18 +0900</pubDate>
    </item>
    <item>
      <title>[알고리즘] 프로그래머스 - 숫자의표현 Lv02 Java</title>
      <link>https://dailycoding-diary.tistory.com/101</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12924&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/12924&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1689248722499&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;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12924&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bhcYMV/hyTjM0Arjn/zryFpiFA5MRNGRD5vuuseK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/bclqDs/hyTjTel0gY/2W3JBAAU6t3VfAzfPVwbe0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12924&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12924&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bhcYMV/hyTjM0Arjn/zryFpiFA5MRNGRD5vuuseK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/bclqDs/hyTjTel0gY/2W3JBAAU6t3VfAzfPVwbe0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&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;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1689248743586&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package Programmers;

public class 숫자의표현 {
    public static void main(String[] args){
        숫자의표현 T = new 숫자의표현();
        int n = 15;
        T.solution(n);
    }
    public int solution(int n) {
        int answer = 0;
        int sum = 0;
        int lt = 1;

        for (int rt = 0; rt &amp;lt;= n; rt++) {
            sum += rt;
            if(sum == n) answer++;
            while (sum &amp;gt;= n){
                sum -= lt++;
                if(sum == n) answer++;
            }
        }

        return answer;
    }

}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 풀이&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 1.1) 투포인터 알고리즘으로 품.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- for문은 rt 가 n까지 증가,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- 값을 증가시키면서 n과 비교하여 같다면 answer++;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- 합한값이 n보다 크다하면 lt값을 이동시켜주면서 있던자리의 값은 빼주면 된다.&amp;nbsp;&lt;/p&gt;</description>
      <category>기타/알고리즘</category>
      <category>java</category>
      <category>숫자의표현</category>
      <category>알고리즘</category>
      <category>자바</category>
      <category>투포인터</category>
      <category>프로그래머스</category>
      <author>비전공출신개발자</author>
      <guid isPermaLink="true">https://dailycoding-diary.tistory.com/101</guid>
      <comments>https://dailycoding-diary.tistory.com/101#entry101comment</comments>
      <pubDate>Thu, 13 Jul 2023 20:47:40 +0900</pubDate>
    </item>
    <item>
      <title>[알고리즘] 프로그래머스 - 최소값만들기 Lv02 Java</title>
      <link>https://dailycoding-diary.tistory.com/100</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12941&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/12941&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1688462322639&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;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12941&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/REw0I/hyTcCSPigU/c4CrPNhzKjCiMmqzv7Zrkk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/k3x3i/hyTcKJ3Xmx/6Ar48q8LVvSfAj9nlFMMr1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12941&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12941&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/REw0I/hyTcCSPigU/c4CrPNhzKjCiMmqzv7Zrkk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/k3x3i/hyTcKJ3Xmx/6Ar48q8LVvSfAj9nlFMMr1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&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;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&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;pre id=&quot;code_1688462348681&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package Programmers;

import java.util.*;

public class 최소값만들기 {
    public static void main(String[] args){
        최소값만들기 T = new 최소값만들기();
        int[] A = {1,4,2};
        int[] B = {5,4,4};
        T.solution(A, B);
    }

    public Integer solution(int []A, int []B)
    {
        int answer = 0;

        PriorityQueue&amp;lt;Integer&amp;gt; pqAsc = new PriorityQueue&amp;lt;&amp;gt;();
        PriorityQueue&amp;lt;Integer&amp;gt; pqDesc = new PriorityQueue&amp;lt;&amp;gt;(Collections.reverseOrder());

        for (int i = 0; i &amp;lt; A.length; i++) {
            pqAsc.offer(A[i]);
            pqDesc.offer(B[i]);
        }

        while (!pqAsc.isEmpty()){
            answer += pqAsc.poll() * pqDesc.poll();
        }

        return answer;
    }





}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 풀이&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - A배열의 최소값하고 B배열의 최대값 곱해줘서 배열수 만큼 합하면 풀린다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 우선순위큐 자료구조 활용해서 문제 품.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - solution함수 return 값을 int로 하면 효율성 체크 하나 오답나온다. Integer형식으로 바꿔주면 효율성검사 통과&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;?????&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;answer 를 Integer로 놓고 return 값을 int 로 줘도 실패함.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왜지??? 연산할때 더 많은 Integer -&amp;gt; int&amp;nbsp; unWrapping이 일어나는거 아닌가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;return 줄때는 값하나만 unWrapping하는데 뭐지?&lt;/p&gt;</description>
      <category>기타/알고리즘</category>
      <category>java</category>
      <category>알고리즘</category>
      <category>자바</category>
      <category>최소값만들기</category>
      <category>프로그래머스</category>
      <author>비전공출신개발자</author>
      <guid isPermaLink="true">https://dailycoding-diary.tistory.com/100</guid>
      <comments>https://dailycoding-diary.tistory.com/100#entry100comment</comments>
      <pubDate>Tue, 4 Jul 2023 18:26:30 +0900</pubDate>
    </item>
    <item>
      <title>[알고리즘] 프로그래머스 - 타겟넘버 LV02 Java</title>
      <link>https://dailycoding-diary.tistory.com/99</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/43165&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/43165&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1688460729965&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;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/43165&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/7SqLv/hyTeid6KQB/0Y1744mikvnFOjZKKTU800/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/bT8L5X/hyTd7wTA63/1UmMHBUnH4XwpnTVR3pGa1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/43165&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/43165&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/7SqLv/hyTeid6KQB/0Y1744mikvnFOjZKKTU800/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/bT8L5X/hyTd7wTA63/1UmMHBUnH4XwpnTVR3pGa1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&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;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&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;pre id=&quot;code_1688460762355&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package Programmers;

import java.util.Arrays;

public class 타겟넘버 {

    static int[] combArr = {1, -1};
    static int[] chMap;
    static int tempAnswer;
    public static void main(String[] args){
        타겟넘버 T = new 타겟넘버();
        int[] numbers = {1, 1, 1, 1, 1};
        int target = 3;
        T.solution(numbers, target);
    }

    public int solution(int[] numbers, int target) {
        chMap = new int[numbers.length];
        tempAnswer = 0;
        dfs(0, numbers, target, new int[numbers.length]);
        return tempAnswer;
    }
    public void dfs(int L, int[] numbers, int target, int[] myArr){
        if(L == numbers.length){
            int sum = Arrays.stream(myArr).sum();
            if(sum == target) tempAnswer++;
            return;
        }else{
            for (int i = 0; i &amp;lt; combArr.length; i++) {
                myArr[L] = combArr[i] * numbers[L];
                dfs(L + 1, numbers, target, myArr);
            }
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 풀이&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;1.1 ) combArr 에&amp;nbsp; [-1, 1] 들어있는 배열을 만든다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;1.2 ) dfs 를 돌면서 myArr을 만든다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-&amp;gt; 기존 numbers 조합배열에 combArr 을 곱한조합의 배열&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 넣게되면 배열은 -1, 1 을 곱한 numbers 의 모든 조합의 수를 구할수가있음&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;1.3 ) L 은 DFS의 레벨값이다. 레벨값이 numbers 배열의 길이와 같다면 구해진 myArr조합의 합을 구해 target과 같은지 비교하고&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;같다면 answer에 +1 을 해준다.&lt;/p&gt;</description>
      <category>기타/알고리즘</category>
      <category>dfs</category>
      <category>java</category>
      <category>알고리즘</category>
      <category>자바</category>
      <category>타겟넘버</category>
      <category>프로그래머스</category>
      <author>비전공출신개발자</author>
      <guid isPermaLink="true">https://dailycoding-diary.tistory.com/99</guid>
      <comments>https://dailycoding-diary.tistory.com/99#entry99comment</comments>
      <pubDate>Tue, 4 Jul 2023 17:56:05 +0900</pubDate>
    </item>
    <item>
      <title>[알고리즘] 프로그래머스 - 쿼드 압축 후 개수세기 LV02 Java</title>
      <link>https://dailycoding-diary.tistory.com/98</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/68936&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/68936&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1687768043177&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;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/68936&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/crRfkn/hyS8lB1kWq/eOLkbNJD01jKmu9QkPOzbK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/byVVsT/hyS6AAQogA/Qkwyuc95trFKfzEUo565Hk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/68936&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/68936&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/crRfkn/hyS8lB1kWq/eOLkbNJD01jKmu9QkPOzbK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/byVVsT/hyS6AAQogA/Qkwyuc95trFKfzEUo565Hk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&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;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1687768088792&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package Programmers;

public class 쿼드압축후개수세기 {
    public static void main(String[] args){
        쿼드압축후개수세기 T = new 쿼드압축후개수세기();
        int[][] arr = {{1,1,0,0},{1,0,0,0},{1,0,0,1},{1,1,1,1}};
        T.solution(arr);
    }

    static int[] answer = new int[2];
    public int[] solution(int[][] arr) {
        int totSize = arr.length;
        dq(0,0, totSize, arr);
        return answer;
    }

    public void dq(int stX, int stY, int size, int[][] arr){
        if(check(stX, stY, size, arr)){
            //arr[stX][stY] 가 0이거나 1일때 answer에 카운팅해준다.
            answer[arr[stX][stY]]++;
            return;
        }
        //2사분면
        dq(stX, stY, size / 2, arr);
        //1사분면
        dq(stX + size / 2, stY, size / 2, arr);
        //3사분면
        dq(stX, stY + size / 2, size / 2, arr);
        //4사분면
        dq(stX + size / 2, stY + size / 2, size / 2, arr);


    }



    public boolean check(int x, int y, int size, int[][] arr){
        for (int i = x; i &amp;lt; x + size; i++) {
            for (int j = y; j &amp;lt; y + size; j++) {
                if(arr[x][y] != arr[i][j]) return false;
            }
        }
        return true;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 풀이&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 분할정복 알고리즘으로 접근&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 1사분면 ~ 4사분면으로 나누는 재귀&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- check 는 나눠진 사분면에서 하나라도 틀린게 있다면 false 반환한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; check 가 참이면 나눠진 사분면안에 모든값들은 같은값이기 때문에 answer에 값을 더해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 사분면이 나눠지면 그안에서도 1~4분면까지 나눠지게 되고 계속 재귀로 푼다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;answer의 0번 인덱스는 0의 개수가 들어가고&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1번 인덱스는 1의 개수가 들어간다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;&amp;nbsp;※ 참고&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;535&quot; data-origin-height=&quot;483&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YxzXS/btsluTTjFJw/XCISw58IQ054EkMD2SKZZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YxzXS/btsluTTjFJw/XCISw58IQ054EkMD2SKZZK/img.png&quot; data-alt=&quot;사분면&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YxzXS/btsluTTjFJw/XCISw58IQ054EkMD2SKZZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYxzXS%2FbtsluTTjFJw%2FXCISw58IQ054EkMD2SKZZK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;535&quot; height=&quot;483&quot; data-origin-width=&quot;535&quot; data-origin-height=&quot;483&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;사분면&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;보기 편하게 사분면으로 주석달아놓음 1사분면은 11시방향이 아니라 1시방향부터 시계방향으로 4분면까지 있으니 참고&lt;/span&gt;&lt;/p&gt;</description>
      <category>기타/알고리즘</category>
      <category>java</category>
      <category>분할정복</category>
      <category>알고리즘</category>
      <category>자바</category>
      <category>프로그래머스</category>
      <author>비전공출신개발자</author>
      <guid isPermaLink="true">https://dailycoding-diary.tistory.com/98</guid>
      <comments>https://dailycoding-diary.tistory.com/98#entry98comment</comments>
      <pubDate>Mon, 26 Jun 2023 17:35:48 +0900</pubDate>
    </item>
    <item>
      <title>[알고리즘] 프로그래머스 - 약수의개수와덧셈 Lv1 Java</title>
      <link>https://dailycoding-diary.tistory.com/97</link>
      <description>&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/77884&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://school.programmers.co.kr/learn/courses/30/lessons/77884&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;프로그래머스&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/77884&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/c3ucsl/hySVE3SKKl/b0KQmjtHQ3tFwG9MMIjkD0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/XBplT/hySWo0bKAy/FQ5NtkBkGQ912wv2iJi7n1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot; data-og-url=&quot;https://programmers.co.kr/&quot;&gt;&lt;a href=&quot;https://programmers.co.kr/&quot; target=&quot;_blank&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/77884&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/c3ucsl/hySVE3SKKl/b0KQmjtHQ3tFwG9MMIjkD0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/XBplT/hySWo0bKAy/FQ5NtkBkGQ912wv2iJi7n1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;프로그래머스&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;programmers.co.kr&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;package Programmers;

public class 약수의개수와덧셈 {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public static void main(String[] args){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;약수의개수와덧셈 T = new 약수의개수와덧셈();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int left = 13;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int right = 17;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;T.solution(left, right);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public int solution(int left, int right) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int answer = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//약수의 개수가 짝수인것은 더하고 홀수인것은 빼자
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//1. left ~ right 까지 for문을 돌면서 각각의 약수 개수를 구한다.

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (int i = left; i &amp;lt;= right; i++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int cnt = divisorCnt(i);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//개수가 짝수면 더하고 홀수면 빼자
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(cnt % 2 == 0){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//짝수일경우
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;answer += i;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}else{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//홀수일경우
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;answer -= i;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return answer;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public int divisorCnt(int n){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int cnt = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (int i = 1; i &amp;lt;= n; i++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(n % i == 0){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cnt ++;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return cnt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;1. 풀이&lt;br&gt;&amp;nbsp; 1.1 ) divisorCnt 함수를 만든다.&amp;nbsp;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -&amp;gt; 매개변수로 int 하나 받으면 약수의 개수를 return&amp;nbsp;&lt;br&gt;&amp;nbsp; 1.2 ) For문 left ~ right 까지&amp;nbsp;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - divisorCnt 에 left ~ right 까지 넣어보면서 cnt 를 리턴받아 짝수인지 홀수인지 구분하여 연산해준다.&lt;/p&gt;</description>
      <category>기타/알고리즘</category>
      <category>java</category>
      <category>알고리즘</category>
      <category>약수의개수와덧셈</category>
      <category>자바</category>
      <category>프로그래머스</category>
      <author>비전공출신개발자</author>
      <guid isPermaLink="true">https://dailycoding-diary.tistory.com/97</guid>
      <comments>https://dailycoding-diary.tistory.com/97#entry97comment</comments>
      <pubDate>Thu, 8 Jun 2023 23:09:40 +0900</pubDate>
    </item>
    <item>
      <title>[알고리즘] 프로그래머스 - 최소직사강형 Lv1 Java</title>
      <link>https://dailycoding-diary.tistory.com/96</link>
      <description>&lt;pre id=&quot;code_1685289666590&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package Programmers;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

public class 최소직사각형 {
    public static void main(String[] args){
        최소직사각형 T = new 최소직사각형();
        int[][] sizes = {{60, 50}, {30, 70}, {60, 30}, {80, 40}};
        T.solution(sizes);
    }
    public int solution(int[][] sizes) {
        int answer = 0;
        int maxSize = 0;
        //명함의 크기중 가로세로중 작은것의 크기를 담을 집합
        List&amp;lt;Integer&amp;gt; arrMin = new ArrayList&amp;lt;&amp;gt;();
        for (int[] tempI: sizes) {
            //명함을 돌면서 가로세로중 큰수를 maxSize에 담는다.
            maxSize = Math.max(maxSize, Math.max(tempI[0], tempI[1]));
            //작을수들을 arrMin 배열에 담는다.
            arrMin.add(Math.min(tempI[0], tempI[1]));
        }

        //작은수를 담을 배열을 역정렬해준다.
        arrMin.sort(new Comparator&amp;lt;Integer&amp;gt;() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2-o1;
            }
        });
        //가장큰 크기와 가로세로중 작은크기를 담은 집합중에서의 가장 큰수를 곱해준다.
        answer = maxSize * arrMin.get(0);
        return answer;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 풀이&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 1.1 ) &lt;span style=&quot;color: #006dd7;&quot;&gt;가로세로 길이중 가장 큰수와&lt;/span&gt; &lt;span style=&quot;color: #ee2323;&quot;&gt;가로세로중 작은수들의 집합중 가장큰수의 곱&lt;/span&gt;을 해주면 답을 찾을수있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 1.2 ) 명함을 돌면서 가장큰수를 maxSize에 담아준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 1.3 ) 명함을 돌면서 가로세로중 작은수를 arrMin 에 담아준다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 1.4 ) arrMin 역정렬 내림차순으로 정렬해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 1.5 ) maxSize * arrMin의 0번 인덱스(가장큰수) 를 곱해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;※ 지금보니 arrMin굳이 구할필요없이 변수 선언하나 해서 최대값 바로 구해주는게 더 좋을것같다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 리팩토링&lt;/p&gt;
&lt;pre id=&quot;code_1685289983699&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package Programmers;

import java.util.ArrayList;
import java.util.List;

public class 최소직사각형 {
    public static void main(String[] args){
        최소직사각형 T = new 최소직사각형();
        int[][] sizes = {{60, 50}, {30, 70}, {60, 30}, {80, 40}};
        T.solution(sizes);
    }
    public int solution(int[][] sizes) {
        int answer = 0;
        int maxSize = 0;
        int subMax = 0;
        //명함의 크기중 가로세로중 작은것의 크기를 담을 집합
        List&amp;lt;Integer&amp;gt; arrMin = new ArrayList&amp;lt;&amp;gt;();
        for (int[] tempI: sizes) {
            //명함을 돌면서 가로세로중 큰수를 maxSize에 담는다.
            maxSize = Math.max(maxSize, Math.max(tempI[0], tempI[1]));
            subMax = Math.max(subMax, Math.min(tempI[0], tempI[1]));
        }
        answer = maxSize * subMax;
        return answer;
    }
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>기타/알고리즘</category>
      <category>java</category>
      <category>알고리즘</category>
      <category>자바</category>
      <category>최소직사각형</category>
      <category>프로그래머스</category>
      <author>비전공출신개발자</author>
      <guid isPermaLink="true">https://dailycoding-diary.tistory.com/96</guid>
      <comments>https://dailycoding-diary.tistory.com/96#entry96comment</comments>
      <pubDate>Mon, 29 May 2023 01:06:54 +0900</pubDate>
    </item>
  </channel>
</rss>