<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Melody Coding</title>
    <link>https://melody-coding.tistory.com/</link>
    <description>  삐약이 개발자  </description>
    <language>ko</language>
    <pubDate>Tue, 4 Aug 2026 12:50:02 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>뿌야._.</managingEditor>
    <image>
      <title>Melody Coding</title>
      <url>https://tistory1.daumcdn.net/tistory/4384032/attach/35638230303a40ab867474088c411506</url>
      <link>https://melody-coding.tistory.com</link>
    </image>
    <item>
      <title>[programmers] K번째수</title>
      <link>https://melody-coding.tistory.com/962</link>
      <description>&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;문제&lt;br /&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42748&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/42748&lt;/a&gt;&lt;/blockquote&gt;
&lt;figure id=&quot;og_1785462699757&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/42748&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bdvpHi/dJMb9aKTkHM/QFaS8oFC8pccmCpSkBieo0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/usNGj/dJMb8Z3FYWz/wi5O2dI4xFN46DnNX9KM2k/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/42748&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42748&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bdvpHi/dJMb9aKTkHM/QFaS8oFC8pccmCpSkBieo0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/usNGj/dJMb8Z3FYWz/wi5O2dI4xFN46DnNX9KM2k/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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&amp;lt; K번째수&amp;nbsp;&amp;gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제 풀이&amp;nbsp;&lt;/b&gt;&lt;b&gt;(&lt;span style=&quot;color: #1a5490;&quot;&gt;Java&lt;/span&gt;)&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1785462723933&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.*;

class Solution {
	public int[] solution(int[] array, int[][] commands) {
		int[] answer = new int[commands.length];

		for (int i = 0; i &amp;lt; commands.length; i++) {
			int temp[] = new int[commands[i][1] + 1 - commands[i][0]];

			for (int j = commands[i][0] - 1; j &amp;lt; commands[i][1]; j++) {
				temp[j - (commands[i][0] - 1)] = array[j];
			}

			Arrays.sort(temp);

			answer[i] = temp[commands[i][2] - 1];
		}
		return answer;
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;commands를 순회하며 다음 과정을 거친다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;1. i번째 숫자부터 j번째 숫자까지 자르기&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2. 자른 배열을 정렬&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;3. k번째 있는 수를 answer에 저장&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;최종 answer을 반환한다.&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;637&quot; data-origin-height=&quot;222&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGmfmB/dJMcagsSoMr/9CXGzf1Cm8HyQaGhbO6niK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGmfmB/dJMcagsSoMr/9CXGzf1Cm8HyQaGhbO6niK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGmfmB/dJMcagsSoMr/9CXGzf1Cm8HyQaGhbO6niK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGmfmB%2FdJMcagsSoMr%2F9CXGzf1Cm8HyQaGhbO6niK%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;637&quot; height=&quot;222&quot; data-origin-width=&quot;637&quot; data-origin-height=&quot;222&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;출처: 프로그래머스 코딩 테스트 연습,&amp;nbsp;&lt;br /&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/challenges&quot;&gt;https://school.programmers.co.kr/learn/challenges&lt;/a&gt;&lt;/blockquote&gt;</description>
      <category> Algorithm/ programmers</category>
      <category>java</category>
      <category>K번째수</category>
      <category>programmers</category>
      <category>프로그래머스</category>
      <author>뿌야._.</author>
      <guid isPermaLink="true">https://melody-coding.tistory.com/962</guid>
      <comments>https://melody-coding.tistory.com/962#entry962comment</comments>
      <pubDate>Fri, 31 Jul 2026 10:58:30 +0900</pubDate>
    </item>
    <item>
      <title>[programmers] 완주하지 못한 선수</title>
      <link>https://melody-coding.tistory.com/961</link>
      <description>&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;문제&lt;br /&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42576&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/42576&lt;/a&gt;&lt;/blockquote&gt;
&lt;figure id=&quot;og_1785379438566&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/42576&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/baORKV/dJMb88Gjmdv/O20PASTH53f1BvLp19AyZK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/fTbHz/dJMb9bwgliJ/PItia7kBtuaqM7RDrQF860/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/42576&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42576&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/baORKV/dJMb88Gjmdv/O20PASTH53f1BvLp19AyZK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/fTbHz/dJMb9bwgliJ/PItia7kBtuaqM7RDrQF860/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;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&amp;lt; 완주하지&amp;nbsp;못한&amp;nbsp;선수 &amp;gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제 풀이&amp;nbsp;&lt;/b&gt;&lt;b&gt;(&lt;span style=&quot;color: #1a5490;&quot;&gt;Java&lt;/span&gt;)&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;1) HashMap&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1785379462750&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.*;

class Solution {
	public String solution(String[] participant, String[] completion) {
		String answer = &quot;&quot;;

		HashMap&amp;lt;String, Integer&amp;gt; map = new HashMap&amp;lt;&amp;gt;();

		for (String str : participant) {
			if (!map.containsKey(str)) {
				map.put(str, 0);
			}
			map.put(str, map.get(str) + 1);
		}

		for (String str : completion) {
			if (map.get(str) == 1) {
				map.remove(str);
			} else {
				map.put(str, map.get(str) - 1);
			}
		}

		for (String str : map.keySet()) {
			answer = str;
		}
		return answer;
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;참가자의 이름을 HashMap에 저장하고, 이름별 등장 횟수를 카운트한다. 완주자 명단을 순회하며 HashMap에서 해당 이름의 개수를 감소시킨다. 최종 HashMap에 남은 이름이 완주하지 못한 선수 이므로 answer에 저장한 후 반환한다.&amp;nbsp; &amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2) 정렬&lt;/p&gt;
&lt;pre id=&quot;code_1785379518901&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.*;

class Solution {
	public String solution(String[] participant, String[] completion) {
		String answer = &quot;&quot;;

		Arrays.sort(participant);
		Arrays.sort(completion);

		for (int i = 0; i &amp;lt; participant.length; i++) {
			if (i &amp;gt;= completion.length || !participant[i].equals(completion[i])) {
				answer = participant[i];
				break;
			}
		}
		return answer;
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;참가자 배열과 완주자 배열을 각각 정렬한다. 두 배열을 비교하며 일치하지 않을 때가 완주하지 못한 선수이므로 answer에 저장한 후 반환한다.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;612&quot; data-origin-height=&quot;612&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xe3K3/dJMcafAKqXX/lBnFiZRt8H8LmM3j7v8tcK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xe3K3/dJMcafAKqXX/lBnFiZRt8H8LmM3j7v8tcK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xe3K3/dJMcafAKqXX/lBnFiZRt8H8LmM3j7v8tcK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fxe3K3%2FdJMcafAKqXX%2FlBnFiZRt8H8LmM3j7v8tcK%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;612&quot; height=&quot;612&quot; data-origin-width=&quot;612&quot; data-origin-height=&quot;612&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;출처: 프로그래머스 코딩 테스트 연습,&amp;nbsp;&lt;br /&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/challenges&quot;&gt;https://school.programmers.co.kr/learn/challenges&lt;/a&gt;&lt;/blockquote&gt;</description>
      <category> Algorithm/ programmers</category>
      <category>java</category>
      <category>programmers</category>
      <category>완주하지 못한 선수</category>
      <category>프로그래머스</category>
      <author>뿌야._.</author>
      <guid isPermaLink="true">https://melody-coding.tistory.com/961</guid>
      <comments>https://melody-coding.tistory.com/961#entry961comment</comments>
      <pubDate>Thu, 30 Jul 2026 11:52:52 +0900</pubDate>
    </item>
    <item>
      <title>[programmers] 디스크 컨트롤러</title>
      <link>https://melody-coding.tistory.com/960</link>
      <description>&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;문제&lt;br /&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42627&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/42627&lt;/a&gt;&lt;/blockquote&gt;
&lt;figure id=&quot;og_1785290632507&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/42627&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bhP5Yg/dJMb896hNdq/NdAdc0FKmkaY4rm65mK1B0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/bwegM4/dJMb87gkyTe/ZOvA6keJygDZIU8msQp97k/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/42627&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42627&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bhP5Yg/dJMb896hNdq/NdAdc0FKmkaY4rm65mK1B0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/bwegM4/dJMb87gkyTe/ZOvA6keJygDZIU8msQp97k/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;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;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&amp;lt; 디스크&amp;nbsp;컨트롤러 &amp;gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제 풀이&amp;nbsp;&lt;/b&gt;&lt;b&gt;(&lt;span style=&quot;color: #1a5490;&quot;&gt;Java&lt;/span&gt;)&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1785290612140&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;import java.util.*;

class Solution {
	public int solution(int[][] jobs) {
		int answer = 0;

		Arrays.sort(jobs, new Comparator&amp;lt;int[]&amp;gt;() {
			@Override
			public int compare(int[] o1, int[] o2) {
				return o1[0] - o2[0];
			}
		});

		PriorityQueue&amp;lt;int[]&amp;gt; queue = new PriorityQueue&amp;lt;&amp;gt;(new Comparator&amp;lt;int[]&amp;gt;() {
			@Override
			public int compare(int[] o1, int[] o2) {
				if (o1[2] == o2[2]) {
					if (o1[1] == o2[1]) {
						return o1[0] - o2[0];
					}
					return o1[1] - o2[1];
				}
				return o1[2] - o2[2];
			}
		});

		int idx = 0, time = 0;

		while (idx &amp;lt; jobs.length) {
			while (idx &amp;lt; jobs.length &amp;amp;&amp;amp; time &amp;gt;= jobs[idx][0]) {
				queue.add(new int[] { idx, jobs[idx][0], jobs[idx][1] });
				idx += 1;
			}
			if (queue.isEmpty()) {
				time = jobs[idx][0];
				while (idx &amp;lt; jobs.length &amp;amp;&amp;amp; time &amp;gt;= jobs[idx][0]) {
					queue.add(new int[] { idx, jobs[idx][0], jobs[idx][1] });
					idx += 1;
				}
			}
			int job[] = queue.poll();
			if (time &amp;lt; job[1]) {
				time = job[1] + job[2];
			} else {
				time += job[2];
			}
			answer += time - job[1];
		}

		while (!queue.isEmpty()) {
			int job[] = queue.poll();

			if (time &amp;lt; job[1]) {
				time = job[1] + job[2];
			} else {
				time += job[2];
			}
			answer += time - job[1];
		}

		answer /= jobs.length;

		return answer;
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;jobs를 작업의 요청 시각이 빠른 순으로 정렬한다. 우선순위 큐를 작업의 소요 시간이 짧은 것, 작업의 요청 시각이 빠른 것, 작업의 번호가 작은 것 순으로 정렬하도록 선언한다. 모든 작업이 수행되도록 다음 과정을 반복한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;1. 현재 시간보다 작업 요청 시각이 빠른 작업들을 우선순위 큐에 추가&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2. 현재 시간에 요청된 작업이 없어 우선순위 큐가 비어있다면 현재 시간 업데이트 및 우선순위 큐에 추가&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;3. queue poll&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;4. 현재 시간 업데이트 및 요청 작업의 반환 시간을 구해 answer에 더하기&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;만약 우선순위 큐에 작업이 남아있다면 위의 3~4번을 반복해 준다. 최종 answer의 값을 jobs의 길이로 나눈 값을 반환한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;632&quot; data-origin-height=&quot;297&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TmfWC/dJMcadQm3Ng/13eRpsRHYLZpolBjgGPCfK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TmfWC/dJMcadQm3Ng/13eRpsRHYLZpolBjgGPCfK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TmfWC/dJMcadQm3Ng/13eRpsRHYLZpolBjgGPCfK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTmfWC%2FdJMcadQm3Ng%2F13eRpsRHYLZpolBjgGPCfK%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;632&quot; height=&quot;297&quot; data-origin-width=&quot;632&quot; data-origin-height=&quot;297&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;출처: 프로그래머스 코딩 테스트 연습,&amp;nbsp;&lt;br /&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/challenges&quot;&gt;https://school.programmers.co.kr/learn/challenges&lt;/a&gt;&lt;/blockquote&gt;</description>
      <category> Algorithm/ programmers</category>
      <category>java</category>
      <category>programmers</category>
      <category>디스크 컨트롤러</category>
      <category>프로그래머스</category>
      <author>뿌야._.</author>
      <guid isPermaLink="true">https://melody-coding.tistory.com/960</guid>
      <comments>https://melody-coding.tistory.com/960#entry960comment</comments>
      <pubDate>Wed, 29 Jul 2026 11:04:21 +0900</pubDate>
    </item>
    <item>
      <title>[programmers] 이중우선순위큐</title>
      <link>https://melody-coding.tistory.com/958</link>
      <description>&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;문제&lt;br /&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42628&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/42628&lt;/a&gt;&lt;/blockquote&gt;
&lt;figure id=&quot;og_1785111742257&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/42628&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cJCxnV/dJMb9llkEBH/xhXrAXNkVMwnB0HqtaeYn0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/jBqXc/dJMb9fZIWe2/MUej7ZBx8pV2HkkkVUCZP0/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/42628&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42628&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cJCxnV/dJMb9llkEBH/xhXrAXNkVMwnB0HqtaeYn0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/jBqXc/dJMb9fZIWe2/MUej7ZBx8pV2HkkkVUCZP0/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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 문제를 풀면서 예전에 풀었던 문제가 기억이 안 나서 참고했다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://melody-coding.tistory.com/318&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://melody-coding.tistory.com/318&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1785111791000&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Baekjoon] 7662_이중 우선순위 큐&quot; data-og-description=&quot;Gold IV문제(출처: https://www.acmicpc.net/problem/7662)&amp;nbsp;문제 풀이 &amp;amp; 생각&amp;nbsp;처음에는 최댓값과 최솟값을 관리하기 위해 우선순위 큐를 2개 선언해서 오름차순, 내림차순 순으로 정렬해서 사용했다. 시간제&quot; data-og-host=&quot;melody-coding.tistory.com&quot; data-og-source-url=&quot;https://melody-coding.tistory.com/318&quot; data-og-url=&quot;https://melody-coding.tistory.com/318&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/SdFNn/dJMb81HbggP/kuQYEBXZSsO2iFLOlQ7zX0/img.jpg?width=800&amp;amp;height=1066&amp;amp;face=0_0_800_1066,https://scrap.kakaocdn.net/dn/cIFA1u/dJMb9b35AQO/ZYTFCcs5T5L8Sh5VEqSlc0/img.jpg?width=800&amp;amp;height=1066&amp;amp;face=0_0_800_1066,https://scrap.kakaocdn.net/dn/bwu3aa/dJMb82MQSS6/X3tUFZq6spqOe8zhLCfKi1/img.png?width=1417&amp;amp;height=501&amp;amp;face=0_0_1417_501&quot;&gt;&lt;a href=&quot;https://melody-coding.tistory.com/318&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://melody-coding.tistory.com/318&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/SdFNn/dJMb81HbggP/kuQYEBXZSsO2iFLOlQ7zX0/img.jpg?width=800&amp;amp;height=1066&amp;amp;face=0_0_800_1066,https://scrap.kakaocdn.net/dn/cIFA1u/dJMb9b35AQO/ZYTFCcs5T5L8Sh5VEqSlc0/img.jpg?width=800&amp;amp;height=1066&amp;amp;face=0_0_800_1066,https://scrap.kakaocdn.net/dn/bwu3aa/dJMb82MQSS6/X3tUFZq6spqOe8zhLCfKi1/img.png?width=1417&amp;amp;height=501&amp;amp;face=0_0_1417_501');&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;[Baekjoon] 7662_이중 우선순위 큐&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Gold IV문제(출처: https://www.acmicpc.net/problem/7662)&amp;nbsp;문제 풀이 &amp;amp; 생각&amp;nbsp;처음에는 최댓값과 최솟값을 관리하기 위해 우선순위 큐를 2개 선언해서 오름차순, 내림차순 순으로 정렬해서 사용했다. 시간제&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;melody-coding.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://melody-coding.tistory.com/317&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://melody-coding.tistory.com/317&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1785111797039&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[자료구조] TreeMap&quot; data-og-description=&quot;❓ TreeMap 이란?이진트리를 기반으로 한 Map 컬렉션객체 저장 시 자동 정렬(default : 오름차순)&amp;nbsp;&amp;nbsp;&amp;nbsp;❓TreeMap 선언TreeMap map=new TreeMap();&amp;nbsp;&amp;nbsp;❓&amp;nbsp;TreeMap 추가, 삭제// 추가map.put(1,1);// 삭제map.remove(1);&amp;nbsp;&amp;nbsp;&amp;nbsp;❓ T&quot; data-og-host=&quot;melody-coding.tistory.com&quot; data-og-source-url=&quot;https://melody-coding.tistory.com/317&quot; data-og-url=&quot;https://melody-coding.tistory.com/317&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/fXJ0j/dJMb9jOAtoT/T2UhZe3aMkq0nJYNkX7Q8k/img.jpg?width=800&amp;amp;height=1049&amp;amp;face=0_0_800_1049,https://scrap.kakaocdn.net/dn/FhkpK/dJMb86oblDT/CcfbqkGVsTM6wEpXOu2Ki0/img.jpg?width=800&amp;amp;height=1049&amp;amp;face=0_0_800_1049,https://scrap.kakaocdn.net/dn/ou6WK/dJMb8TCnDGx/FYAxSkM6zeHCQhuM6SGHn1/img.jpg?width=400&amp;amp;height=532&amp;amp;face=0_0_400_532&quot;&gt;&lt;a href=&quot;https://melody-coding.tistory.com/317&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://melody-coding.tistory.com/317&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/fXJ0j/dJMb9jOAtoT/T2UhZe3aMkq0nJYNkX7Q8k/img.jpg?width=800&amp;amp;height=1049&amp;amp;face=0_0_800_1049,https://scrap.kakaocdn.net/dn/FhkpK/dJMb86oblDT/CcfbqkGVsTM6wEpXOu2Ki0/img.jpg?width=800&amp;amp;height=1049&amp;amp;face=0_0_800_1049,https://scrap.kakaocdn.net/dn/ou6WK/dJMb8TCnDGx/FYAxSkM6zeHCQhuM6SGHn1/img.jpg?width=400&amp;amp;height=532&amp;amp;face=0_0_400_532');&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;[자료구조] TreeMap&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;❓ TreeMap 이란?이진트리를 기반으로 한 Map 컬렉션객체 저장 시 자동 정렬(default : 오름차순)&amp;nbsp;&amp;nbsp;&amp;nbsp;❓TreeMap 선언TreeMap map=new TreeMap();&amp;nbsp;&amp;nbsp;❓&amp;nbsp;TreeMap 추가, 삭제// 추가map.put(1,1);// 삭제map.remove(1);&amp;nbsp;&amp;nbsp;&amp;nbsp;❓ T&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;melody-coding.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&amp;lt; 이중우선순위큐 &amp;gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제 풀이&amp;nbsp;&lt;/b&gt;&lt;b&gt;(&lt;span style=&quot;color: #1a5490;&quot;&gt;Java&lt;/span&gt;)&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1785111754535&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.*;

class Solution {
	public int[] solution(String[] operations) {
		int[] answer = { 0, 0 };

		TreeMap&amp;lt;Integer, Integer&amp;gt; map = new TreeMap&amp;lt;&amp;gt;();

		for (int i = 0; i &amp;lt; operations.length; i++) {
			String str[] = operations[i].split(&quot; &quot;);
			int num = Integer.parseInt(str[1]);

			if (str[0].charAt(0) == 'I') {
				if (map.containsKey(num)) {
					map.put(num, map.get(num) + 1);
				} else {
					map.put(num, 1);
				}
			} else {
				if (map.size() == 0) {
					continue;
				}
				if (num == 1) {
					if (map.lastEntry().getValue() == 1) {
						map.remove(map.lastKey());
					} else {
						map.put(map.lastKey(), map.get(map.lastKey()) - 1);
					}
				} else {
					if (map.firstEntry().getValue() == 1) {
						map.remove(map.firstKey());
					} else {
						map.put(map.firstKey(), map.get(map.firstKey()) - 1);
					}
				}
			}
		}

		if (!map.isEmpty()) {
			answer[0] = map.lastKey();
			answer[1] = map.firstKey();
		}
		return answer;
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;TreeMap을 선언한 후 operations를 탐색하며 다음 과정을 거친다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;1. I라면 map에 추가&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2. D이고 map이 비었다면 다음 명령어로 넘어가기&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;3. D이고 1이라면 최댓값 삭제, -1이라면 최솟값 삭제&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;최종 TreeMap이 비어있지 않다면 최댓값과 최솟값을 answer에 저장한 후 반환한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;641&quot; data-origin-height=&quot;137&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BvyRq/dJMcadXbBS8/h3edkYFUua8lxCtJP3PH1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BvyRq/dJMcadXbBS8/h3edkYFUua8lxCtJP3PH1k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BvyRq/dJMcadXbBS8/h3edkYFUua8lxCtJP3PH1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBvyRq%2FdJMcadXbBS8%2Fh3edkYFUua8lxCtJP3PH1k%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;641&quot; height=&quot;137&quot; data-origin-width=&quot;641&quot; data-origin-height=&quot;137&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;출처: 프로그래머스 코딩 테스트 연습,&amp;nbsp;&lt;br /&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/challenges&quot;&gt;https://school.programmers.co.kr/learn/challenges&lt;/a&gt;&lt;/blockquote&gt;</description>
      <category> Algorithm/ programmers</category>
      <category>java</category>
      <category>programmers</category>
      <category>이중우선순위큐</category>
      <category>프로그래머스</category>
      <author>뿌야._.</author>
      <guid isPermaLink="true">https://melody-coding.tistory.com/958</guid>
      <comments>https://melody-coding.tistory.com/958#entry958comment</comments>
      <pubDate>Mon, 27 Jul 2026 09:26:01 +0900</pubDate>
    </item>
    <item>
      <title>[programmers] 베스트앨범</title>
      <link>https://melody-coding.tistory.com/957</link>
      <description>&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;문제&lt;br /&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42579&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/42579&lt;/a&gt;&lt;/blockquote&gt;
&lt;figure id=&quot;og_1784857151824&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/42579&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bcTRu1/dJMb8U867Wd/jEc7DGJ8vdvtQxVNkuILe1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/coQ15H/dJMb8QezCRC/kSdbbVo1RrnXhEI62WmSt0/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/42579&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42579&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bcTRu1/dJMb8U867Wd/jEc7DGJ8vdvtQxVNkuILe1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/coQ15H/dJMb8QezCRC/kSdbbVo1RrnXhEI62WmSt0/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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&amp;lt; 베스트앨범 &amp;gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제 풀이&amp;nbsp;&lt;/b&gt;&lt;b&gt;(&lt;span style=&quot;color: #1a5490;&quot;&gt;Java&lt;/span&gt;)&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1784857167918&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.*;

class Solution {
	public int[] solution(String[] genres, int[] plays) {
		int[] answer;

		HashMap&amp;lt;String, Integer&amp;gt; total = new HashMap&amp;lt;&amp;gt;();
		HashMap&amp;lt;String, ArrayList&amp;lt;int[]&amp;gt;&amp;gt; songs = new HashMap&amp;lt;&amp;gt;();

		for (int i = 0; i &amp;lt; genres.length; i++) {
			if (total.containsKey(genres[i])) {
				total.replace(genres[i], total.get(genres[i]) + plays[i]);
			} else {
				total.put(genres[i], plays[i]);
			}

			if (!songs.containsKey(genres[i])) {
				songs.put(genres[i], new ArrayList&amp;lt;&amp;gt;());
			}
			songs.get(genres[i]).add(new int[] { i, plays[i] });
		}

		ArrayList&amp;lt;String&amp;gt; list = new ArrayList&amp;lt;&amp;gt;(total.keySet());
		Collections.sort(list, new Comparator&amp;lt;String&amp;gt;() {

			@Override
			public int compare(String o1, String o2) {
				return total.get(o2) - total.get(o1);
			}
		});

		ArrayList&amp;lt;Integer&amp;gt; result = new ArrayList&amp;lt;&amp;gt;();
		for (String genre : list) {
			ArrayList&amp;lt;int[]&amp;gt; temp = new ArrayList&amp;lt;&amp;gt;(songs.get(genre));

			Collections.sort(temp, new Comparator&amp;lt;int[]&amp;gt;() {

				@Override
				public int compare(int[] o1, int[] o2) {
					if (o1[1] == o2[1]) {
						return o1[0] - o2[0];
					}
					return o2[1] - o1[1];
				}

			});

			result.add(temp.get(0)[0]);

			if (temp.size() &amp;gt; 1) {
				result.add(temp.get(1)[0]);
			}
		}

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

		return answer;
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;genres와 plays를 탐색하며 장르별 노래 재생 횟수를 구하고, 각 노래를 장르별로 구분한다. 장르별 노래 재생 횟수를 내림차순으로 정렬한 후, 그 장르에 해당하는 각 노래의 재생 횟수를 내림차순으로 정렬하여 2개씩 ArrayList에 저장한다. ArrayList를 Array로 변환 후 반환한다.&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;612&quot; data-origin-height=&quot;132&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bIYDNz/dJMcabrvIc7/i170uVfroCQp7kCmMLsXFk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bIYDNz/dJMcabrvIc7/i170uVfroCQp7kCmMLsXFk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bIYDNz/dJMcabrvIc7/i170uVfroCQp7kCmMLsXFk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbIYDNz%2FdJMcabrvIc7%2Fi170uVfroCQp7kCmMLsXFk%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;612&quot; height=&quot;132&quot; data-origin-width=&quot;612&quot; data-origin-height=&quot;132&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;출처: 프로그래머스 코딩 테스트 연습,&amp;nbsp;&lt;br /&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/challenges&quot;&gt;https://school.programmers.co.kr/learn/challenges&lt;/a&gt;&lt;/blockquote&gt;</description>
      <category> Algorithm/ programmers</category>
      <category>java</category>
      <category>programmers</category>
      <category>베스트앨범</category>
      <category>프로그래머스</category>
      <author>뿌야._.</author>
      <guid isPermaLink="true">https://melody-coding.tistory.com/957</guid>
      <comments>https://melody-coding.tistory.com/957#entry957comment</comments>
      <pubDate>Fri, 24 Jul 2026 10:45:49 +0900</pubDate>
    </item>
    <item>
      <title>[programmers] 정수 삼각형</title>
      <link>https://melody-coding.tistory.com/956</link>
      <description>&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;문제&lt;br /&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/43105&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/43105&lt;/a&gt;&lt;/blockquote&gt;
&lt;figure id=&quot;og_1784684845364&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/43105&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bIgv2m/dJMb9fZIkbf/zKKFhZ17ffcezUEGZ7wVj1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/PYeVd/dJMb8XSi1WB/nCC35giNKv3wtQ77wg1TX0/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/43105&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/43105&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bIgv2m/dJMb9fZIkbf/zKKFhZ17ffcezUEGZ7wVj1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/PYeVd/dJMb8XSi1WB/nCC35giNKv3wtQ77wg1TX0/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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&amp;lt; 정수&amp;nbsp;삼각형 &amp;gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제 풀이&amp;nbsp;&lt;/b&gt;&lt;b&gt;(&lt;span style=&quot;color: #1a5490;&quot;&gt;Java&lt;/span&gt;)&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1784684864000&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Solution {
	public int solution(int[][] triangle) {
		int answer = 0;

		int dp[][] = new int[triangle.length][triangle[triangle.length - 1].length];

		dp[0][0] = triangle[0][0];

		for (int i = 0; i &amp;lt; triangle.length - 1; i++) {
			for (int j = 0; j &amp;lt; triangle[i].length; j++) {
				dp[i + 1][j] = Math.max(triangle[i + 1][j] + dp[i][j], dp[i + 1][j]);
				dp[i + 1][j + 1] = Math.max(triangle[i + 1][j + 1] + dp[i][j], dp[i + 1][j + 1]);
			}
		}

		for (int i = 0; i &amp;lt; triangle[triangle.length - 1].length; i++) {
			answer = Math.max(answer, dp[triangle.length - 1][i]);
		}

		return answer;
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;거쳐간 숫자의 합을 구하기 위해 dp 배열을 선언한다. 0번째 행에는 원래 값을 저장하고 0번째 행부터 마지막 행 전까지 탐색한다. 이때, 다음 행의 같은 열과, 다음 행의 다음 열에 현재 값을 더했을 때 최댓값을 dp에 저장한다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;최종 마지막 행을 살펴보며 최댓값을 answer에 저장한 후 answer을 반환한다.&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;622&quot; data-origin-height=&quot;126&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bIuot9/dJMcaasBxqB/klVV5m9mBg7oLpadx2pHAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bIuot9/dJMcaasBxqB/klVV5m9mBg7oLpadx2pHAk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bIuot9/dJMcaasBxqB/klVV5m9mBg7oLpadx2pHAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbIuot9%2FdJMcaasBxqB%2FklVV5m9mBg7oLpadx2pHAk%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;622&quot; height=&quot;126&quot; data-origin-width=&quot;622&quot; data-origin-height=&quot;126&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;출처: 프로그래머스 코딩 테스트 연습,&amp;nbsp;&lt;br /&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/challenges&quot;&gt;https://school.programmers.co.kr/learn/challenges&lt;/a&gt;&lt;/blockquote&gt;</description>
      <category> Algorithm/ programmers</category>
      <category>java</category>
      <category>programmers</category>
      <category>정수 삼각형</category>
      <category>프로그래머스</category>
      <author>뿌야._.</author>
      <guid isPermaLink="true">https://melody-coding.tistory.com/956</guid>
      <comments>https://melody-coding.tistory.com/956#entry956comment</comments>
      <pubDate>Wed, 22 Jul 2026 10:50:18 +0900</pubDate>
    </item>
    <item>
      <title>[programmers] 가장 먼 노드</title>
      <link>https://melody-coding.tistory.com/955</link>
      <description>&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;문제&lt;br /&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/49189&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/49189&lt;/a&gt;&lt;/blockquote&gt;
&lt;figure id=&quot;og_1784598233280&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/49189&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/liF43/dJMb896gIEj/dPHsCjpLj4Nj2WOAyyr7CK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/6Cvre/dJMb88Gh39M/YJEZPuE8oGeCzvkWqkaxx0/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/49189&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/49189&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/liF43/dJMb896gIEj/dPHsCjpLj4Nj2WOAyyr7CK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/6Cvre/dJMb88Gh39M/YJEZPuE8oGeCzvkWqkaxx0/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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&amp;lt; 가장&amp;nbsp;먼&amp;nbsp;노드 &amp;gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제 풀이&amp;nbsp;&lt;/b&gt;&lt;b&gt;(&lt;span style=&quot;color: #1a5490;&quot;&gt;Java&lt;/span&gt;)&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1784598254595&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.*;

class Solution {
	public int solution(int n, int[][] edge) {
		int answer = 0;

		ArrayList&amp;lt;ArrayList&amp;lt;Integer&amp;gt;&amp;gt; list = new ArrayList&amp;lt;&amp;gt;();

		for (int i = 0; i &amp;lt; n + 1; i++) {
			list.add(new ArrayList&amp;lt;&amp;gt;());
		}

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

		int depth[] = new int[n + 1];

		bfs(list, depth);

		int max = 0;
		for (int i = 1; i &amp;lt; n + 1; i++) {
			if (max &amp;lt; depth[i]) {
				max = depth[i];
				answer = 1;
			} else if (max == depth[i]) {
				answer += 1;
			}
		}

		return answer;
	}

	private void bfs(ArrayList&amp;lt;ArrayList&amp;lt;Integer&amp;gt;&amp;gt; list, int[] depth) {
		Queue&amp;lt;Integer&amp;gt; queue = new LinkedList&amp;lt;&amp;gt;();
		queue.add(1);

		boolean visited[] = new boolean[list.size()];
		visited[1] = true;

		while (!queue.isEmpty()) {
			int num = queue.poll();

			for (int temp : list.get(num)) {
				if (!visited[temp]) {
					visited[temp] = true;
					depth[temp] = depth[num] + 1;
					queue.add(temp);
				}
			}
		}
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;ArrayList에 간선을 양방향으로 저장한다. bfs를 호출한 뒤 depth를 살펴보며 가장 멀리 떨어진 노드의 개수를 구한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;bfs 함수에서는 Queue에 시작 노드인 1을 저장하고 방문 표시를 한 뒤 Queue가 빌 때까지 다음 과정을 반복한다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;1. queue poll&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2. 현재 노드와 연결된 노드를 살펴보며 아직 방문하지 않은 노드라면 방문 표시, 떨어진 간선 개수를 업데이트 한 뒤 queue에 저장한다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;647&quot; data-origin-height=&quot;210&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bci2bC/dJMcacRndF6/IuQ7X8sG86L0xklCbFa5e1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bci2bC/dJMcacRndF6/IuQ7X8sG86L0xklCbFa5e1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bci2bC/dJMcacRndF6/IuQ7X8sG86L0xklCbFa5e1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbci2bC%2FdJMcacRndF6%2FIuQ7X8sG86L0xklCbFa5e1%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;647&quot; height=&quot;210&quot; data-origin-width=&quot;647&quot; data-origin-height=&quot;210&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;출처: 프로그래머스 코딩 테스트 연습,&amp;nbsp;&lt;br /&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/challenges&quot;&gt;https://school.programmers.co.kr/learn/challenges&lt;/a&gt;&lt;/blockquote&gt;</description>
      <category> Algorithm/ programmers</category>
      <category>java</category>
      <category>programmers</category>
      <category>가장 먼 노드</category>
      <category>프로그래머스</category>
      <author>뿌야._.</author>
      <guid isPermaLink="true">https://melody-coding.tistory.com/955</guid>
      <comments>https://melody-coding.tistory.com/955#entry955comment</comments>
      <pubDate>Tue, 21 Jul 2026 10:53:13 +0900</pubDate>
    </item>
    <item>
      <title>[programmers] 단어 변환</title>
      <link>https://melody-coding.tistory.com/954</link>
      <description>&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;문제&lt;br /&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/43163&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/43163&lt;/a&gt;&lt;/blockquote&gt;
&lt;figure id=&quot;og_1784510735659&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/43163&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/D6ZmJ/dJMb9dHAZaM/HqMkP3vBh1hn0HRRrlTVsk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/cT19BV/dJMb9jOzCOP/FjzcbDeMKkpJ5K0b7O6Wf0/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/43163&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/43163&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/D6ZmJ/dJMb9dHAZaM/HqMkP3vBh1hn0HRRrlTVsk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/cT19BV/dJMb9jOzCOP/FjzcbDeMKkpJ5K0b7O6Wf0/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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&amp;lt; 단어&amp;nbsp;변환 &amp;gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제 풀이&amp;nbsp;&lt;/b&gt;&lt;b&gt;(&lt;span style=&quot;color: #1a5490;&quot;&gt;Java&lt;/span&gt;)&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1784510638450&quot; class=&quot;arduino&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;import java.util.*;

class Solution {
	static class Word {
		String word;
		int cnt;

		public Word(String word, int cnt) {
			this.word = word;
			this.cnt = cnt;
		}
	}

	public int solution(String begin, String target, String[] words) {
		int answer = 0;

		Queue&amp;lt;Word&amp;gt; queue = new LinkedList&amp;lt;&amp;gt;();
		queue.add(new Word(begin, 0));

		boolean visited[] = new boolean[words.length];

		while (!queue.isEmpty()) {
			Word word = queue.poll();

			for (int i = 0; i &amp;lt; words.length; i++) {
				if (!visited[i]) {
					int temp = 0;
					for (int j = 0; j &amp;lt; words[i].length(); j++) {
						if (word.word.charAt(j) != words[i].charAt(j)) {
							temp += 1;
						}
					}
					if (temp == 1) {
						if (words[i].equals(target)) {
							answer = word.cnt + 1;
							break;
						}
						visited[i] = true;
						queue.add(new Word(words[i], word.cnt + 1));
					}
				}
			}
			if (answer &amp;gt; 0) {
				break;
			}
		}
		return answer;
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Queue에 begin 단어와 변환 횟수 0을 저장한 후 Queue가 빌 때까지 다음 과정을 반복한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;1. Queue poll&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2. words를 탐색하며 아직 거친 단어가 아니고 현재 단어와 비교했을 때 한 개의 알파벳만 차이 난다면 방문 표시 및 Queue에 추가한다. 이때, 이 단어가 target 단어와 일치한다면 answer을 업데이트하고 종료한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;최종 answer을 반환한다.&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;627&quot; data-origin-height=&quot;207&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bNotxh/dJMcadW5Pjl/YcvVEzkOkZX8wBzDiF0F00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bNotxh/dJMcadW5Pjl/YcvVEzkOkZX8wBzDiF0F00/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bNotxh/dJMcadW5Pjl/YcvVEzkOkZX8wBzDiF0F00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNotxh%2FdJMcadW5Pjl%2FYcvVEzkOkZX8wBzDiF0F00%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;627&quot; height=&quot;207&quot; data-origin-width=&quot;627&quot; data-origin-height=&quot;207&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;출처: 프로그래머스 코딩 테스트 연습,&amp;nbsp;&lt;br /&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/challenges&quot;&gt;https://school.programmers.co.kr/learn/challenges&lt;/a&gt;&lt;/blockquote&gt;</description>
      <category> Algorithm/ programmers</category>
      <category>java</category>
      <category>programmers</category>
      <category>단어 변환</category>
      <category>프로그래머스</category>
      <author>뿌야._.</author>
      <guid isPermaLink="true">https://melody-coding.tistory.com/954</guid>
      <comments>https://melody-coding.tistory.com/954#entry954comment</comments>
      <pubDate>Mon, 20 Jul 2026 10:24:20 +0900</pubDate>
    </item>
    <item>
      <title>[programmers] 네트워크</title>
      <link>https://melody-coding.tistory.com/952</link>
      <description>&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;문제&lt;br /&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/43162&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/43162&lt;/a&gt;&lt;/blockquote&gt;
&lt;figure id=&quot;og_1784114322991&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/43162&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/8KXlK/dJMb82MPBuC/RBjzPE6mS2C4pBMB39EHJk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/lvSCB/dJMb87N9gV8/dUiSdFVk1RcUrVGaqrJ1Wk/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/43162&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/43162&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/8KXlK/dJMb82MPBuC/RBjzPE6mS2C4pBMB39EHJk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/lvSCB/dJMb87N9gV8/dUiSdFVk1RcUrVGaqrJ1Wk/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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&amp;lt; 네트워크 &amp;gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제 풀이&amp;nbsp;&lt;/b&gt;&lt;b&gt;(&lt;span style=&quot;color: #1a5490;&quot;&gt;Java&lt;/span&gt;)&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1784114335374&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.*;

class Solution {
	public int solution(int n, int[][] computers) {
		int answer = 0;

		boolean visited[] = new boolean[n];

		for (int i = 0; i &amp;lt; n; i++) {
			if (!visited[i]) {
				answer += 1;
				visited[i] = true;
				bfs(i, computers, visited);
			}
		}

		return answer;
	}

	private void bfs(int idx, int[][] computers, boolean[] visited) {
		Queue&amp;lt;Integer&amp;gt; queue = new LinkedList&amp;lt;&amp;gt;();
		queue.add(idx);

		while (!queue.isEmpty()) {
			int num = queue.poll();

			for (int i = 0; i &amp;lt; computers.length; i++) {
				if (num == i) {
					continue;
				}
				if (computers[num][i] == 1 &amp;amp;&amp;amp; !visited[i]) {
					visited[i] = true;
					queue.add(i);
				}
			}
		}
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;모든 컴퓨터를 탐색하며 아직 네트워크가 이뤄지지 않은 컴퓨터라면 네트워크 추가, 방문 표시, bfs 함수를 호출한다. 최종 answer을 반환한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;bfs 함수에서는 Queue에 시작 컴퓨터 번호를 저장한 후 Queue가 빌 때까지 다음 과정을 반복한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;1. queue poll&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2. 현재 컴퓨터에서 연결된 컴퓨터 중 아직 네트워크를 이루지 않은 컴퓨터가 있는지 확인한 후, 있다면 방문 표시 및 queue에 저장한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1231&quot; data-origin-height=&quot;216&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BcT77/dJMcacX9bRt/K3YACRfeBzDE82ZinqqN4K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BcT77/dJMcacX9bRt/K3YACRfeBzDE82ZinqqN4K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BcT77/dJMcacX9bRt/K3YACRfeBzDE82ZinqqN4K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBcT77%2FdJMcacX9bRt%2FK3YACRfeBzDE82ZinqqN4K%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;1231&quot; height=&quot;216&quot; data-origin-width=&quot;1231&quot; data-origin-height=&quot;216&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;출처: 프로그래머스 코딩 테스트 연습,&amp;nbsp;&lt;br /&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/challenges&quot;&gt;https://school.programmers.co.kr/learn/challenges&lt;/a&gt;&lt;/blockquote&gt;</description>
      <category> Algorithm/ programmers</category>
      <category>java</category>
      <category>programmers</category>
      <category>네트워크</category>
      <category>프로그래머스</category>
      <author>뿌야._.</author>
      <guid isPermaLink="true">https://melody-coding.tistory.com/952</guid>
      <comments>https://melody-coding.tistory.com/952#entry952comment</comments>
      <pubDate>Wed, 15 Jul 2026 20:23:55 +0900</pubDate>
    </item>
    <item>
      <title>[programmers] 타겟 넘버</title>
      <link>https://melody-coding.tistory.com/951</link>
      <description>&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;문제&lt;br /&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/43165&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/43165&lt;/a&gt;&lt;/blockquote&gt;
&lt;figure id=&quot;og_1784014968981&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/43165&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bbGiwL/dJMb8WMBZTf/Ggaj4AObHowV9clwQIIi0k/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/crCPUg/dJMb8PGIwJG/MXp7GTlKlnP67UNwHlX0NK/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/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/bbGiwL/dJMb8WMBZTf/Ggaj4AObHowV9clwQIIi0k/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/crCPUg/dJMb8PGIwJG/MXp7GTlKlnP67UNwHlX0NK/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;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&amp;lt; 타겟&amp;nbsp;넘버 &amp;gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제 풀이&amp;nbsp;&lt;/b&gt;&lt;b&gt;(&lt;span style=&quot;color: #1a5490;&quot;&gt;Java&lt;/span&gt;)&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1784015094063&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Solution {
	static int answer;

	public int solution(int[] numbers, int target) {
		answer = 0;

		dfs(numbers, 0, target, 0);

		return answer;
	}

	private void dfs(int[] numbers, int sum, int target, int idx) {
		if (idx == numbers.length) {
			if (target == sum) {
				answer += 1;
			}
			return;
		}

		dfs(numbers, sum + numbers[idx], target, idx + 1);
		dfs(numbers, sum - numbers[idx], target, idx + 1);

	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;dfs를 호출한 뒤 answer을 반환한다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;dfs 함수에서는 idx가 numbers 끝까지 탐색했다면 return 한다. 이때, target 값과 sum 값이 같다면 answer에 1을 더해준다. 아직 탐색 중이라면 다음 값을 위해 idx+1로 dfs를 호출하며 각 +일 때와 -일 때를 구한다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;642&quot; data-origin-height=&quot;116&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnsxO1/dJMcafOas50/LKZU7N9fN6I1NK7GZrkMO0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnsxO1/dJMcafOas50/LKZU7N9fN6I1NK7GZrkMO0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnsxO1/dJMcafOas50/LKZU7N9fN6I1NK7GZrkMO0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnsxO1%2FdJMcafOas50%2FLKZU7N9fN6I1NK7GZrkMO0%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;642&quot; height=&quot;116&quot; data-origin-width=&quot;642&quot; data-origin-height=&quot;116&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-ke-style=&quot;style6&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;출처: 프로그래머스 코딩 테스트 연습,&amp;nbsp;&lt;br /&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/challenges&quot;&gt;https://school.programmers.co.kr/learn/challenges&lt;/a&gt;&lt;/blockquote&gt;</description>
      <category> Algorithm/ programmers</category>
      <category>java</category>
      <category>programmers</category>
      <category>타겟 넘버</category>
      <category>프로그래머스</category>
      <author>뿌야._.</author>
      <guid isPermaLink="true">https://melody-coding.tistory.com/951</guid>
      <comments>https://melody-coding.tistory.com/951#entry951comment</comments>
      <pubDate>Tue, 14 Jul 2026 16:47:49 +0900</pubDate>
    </item>
  </channel>
</rss>