<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>추가 반례 Archives - 어제와 내일의 나 그 사이의 이야기</title>
	<atom:link href="https://lycos7560.com/tag/%EC%B6%94%EA%B0%80-%EB%B0%98%EB%A1%80/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>생각의 흐름을 타고 다니며 만드는 블로그</description>
	<lastBuildDate>Tue, 20 May 2025 07:14:23 +0000</lastBuildDate>
	<language>ko-KR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://lycos7560.com/wp-content/uploads/2022/11/cropped-cropped-cropped-log-1-150x150-1-80x80.png</url>
	<title>추가 반례 Archives - 어제와 내일의 나 그 사이의 이야기</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>백준 11375번 (열혈강호, C++)</title>
		<link>https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-11375%eb%b2%88-%ec%97%b4%ed%98%88%ea%b0%95%ed%98%b8-c/40040/</link>
					<comments>https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-11375%eb%b2%88-%ec%97%b4%ed%98%88%ea%b0%95%ed%98%b8-c/40040/#respond</comments>
		
		<dc:creator><![CDATA[lycos7560]]></dc:creator>
		<pubDate>Tue, 20 May 2025 07:14:20 +0000</pubDate>
				<category><![CDATA[BaekjoonOnlineJudge]]></category>
		<category><![CDATA[C++/CPP]]></category>
		<category><![CDATA[11375]]></category>
		<category><![CDATA[11375번]]></category>
		<category><![CDATA[Baekjoon]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[cpp]]></category>
		<category><![CDATA[dfs]]></category>
		<category><![CDATA[study]]></category>
		<category><![CDATA[공부]]></category>
		<category><![CDATA[기초]]></category>
		<category><![CDATA[백준]]></category>
		<category><![CDATA[백준 11375]]></category>
		<category><![CDATA[알고리즘]]></category>
		<category><![CDATA[열혈강호]]></category>
		<category><![CDATA[예제]]></category>
		<category><![CDATA[이분 매칭]]></category>
		<category><![CDATA[추가]]></category>
		<category><![CDATA[추가 반례]]></category>
		<category><![CDATA[추가 예제]]></category>
		<category><![CDATA[추가예제]]></category>
		<category><![CDATA[코딩테스트]]></category>
		<category><![CDATA[코테]]></category>
		<guid isPermaLink="false">https://lycos7560.com/?p=40040</guid>

					<description><![CDATA[<p>열혈강호 https://www.acmicpc.net/problem/11375 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 256 MB 16854 7509 4363 42.261% 문제 강호네 회사에는 직원이 N명이 있고, 해야할 일이 M개가 있다. 직원은 1번부터 N번까지 번호가 매겨져 있고, 일은 1번부터 M번까지 번호가 매겨져 있다. 각 직원은 자신이 할 수 있는 일들 중 한 개의 일만 담당할 수 [&#8230;]</p>
<p>The post <a href="https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-11375%eb%b2%88-%ec%97%b4%ed%98%88%ea%b0%95%ed%98%b8-c/40040/">백준 11375번 (열혈강호, C++)</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">열혈강호 <img decoding="async" width="30" height="38" class="wp-image-37908" style="width: 30px;" src="https://lycos7560.com/wp-content/uploads/2024/03/Platinum_4.jpg" alt="" srcset="https://lycos7560.com/wp-content/uploads/2024/03/Platinum_4.jpg 400w, https://lycos7560.com/wp-content/uploads/2024/03/Platinum_4-234x300.jpg 234w" sizes="(max-width: 30px) 100vw, 30px" /></h2>



<p><a href="https://www.acmicpc.net/problem/11375" target="_blank" rel="noreferrer noopener">https://www.acmicpc.net/problem/11375</a></p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">시간 제한</th><th class="has-text-align-left" data-align="left">메모리 제한</th><th class="has-text-align-left" data-align="left">제출</th><th class="has-text-align-left" data-align="left">정답</th><th class="has-text-align-left" data-align="left">맞힌 사람</th><th class="has-text-align-left" data-align="left">정답 비율</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left">2 초</td><td class="has-text-align-left" data-align="left">256 MB</td><td class="has-text-align-left" data-align="left">16854</td><td class="has-text-align-left" data-align="left">7509</td><td class="has-text-align-left" data-align="left">4363</td><td class="has-text-align-left" data-align="left">42.261%</td></tr></tbody></table></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">문제</h3>



<p>강호네 회사에는 직원이 N명이 있고, 해야할 일이 M개가 있다. </p>



<p>직원은 1번부터 N번까지 번호가 매겨져 있고, 일은 1번부터 M번까지 번호가 매겨져 있다.</p>



<p>각 직원은 자신이 할 수 있는 일들 중 한 개의 일만 담당할 수 있고, 각각의 일을 담당하는 사람은 1명이어야 한다.</p>



<p>각각의 직원이 할 수 있는 일의 목록이 주어졌을 때, M개의 일 중에서 최대 몇 개를 할 수 있는지 구하는 프로그램을 작성하시오.</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">입력</h3>



<p>첫째 줄에 직원의 수 N과 일의 개수 M이 주어진다. (1 ≤ N, M ≤ 1,000)</p>



<p>둘째 줄부터 N개의 줄의 i번째 줄에는 i번 직원이 할 수 있는 일의 개수와 할 수 있는 일의 번호가 주어진다.</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">출력</h3>



<p>첫째 줄에 강호네 회사에서 할 수 있는 일의 개수를 출력한다.</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 입력 1</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">5 5
2 1 2
1 1
2 2 3
3 3 4 5
1 1</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 출력 1</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">4</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">출처</h3>



<ul class="wp-block-list">
<li>문제를 만든 사람: <a href="https://www.acmicpc.net/user/baekjoon" target="_blank" rel="noreferrer noopener">baekjoon</a></li>



<li>어색한 표현을 찾은 사람: <a href="https://www.acmicpc.net/user/doju" target="_blank" rel="noreferrer noopener">doju</a></li>



<li>데이터를 추가한 사람: <a href="https://www.acmicpc.net/user/rubix" target="_blank" rel="noreferrer noopener">rubix</a>, <a href="https://www.acmicpc.net/user/woojw911" target="_blank" rel="noreferrer noopener">woojw911</a></li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">알고리즘 분류</h3>



<ul class="wp-block-list">
<li><a href="https://www.acmicpc.net/problem/tag/13" target="_blank" rel="noreferrer noopener">이분 매칭</a></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--80);margin-bottom:var(--wp--preset--spacing--80)"/>



<h3 class="wp-block-heading">통과된 코드</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="cpp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">#include &lt;iostream>
#include &lt;vector>
#include &lt;cstring>

using namespace std;

int N, M;
vector&lt;int> employee[1001];
int works[1001];       
bool visited[1001];      

bool DFS(int n) 
{

    for (int work : employee[n]) 
    {
        if (visited[work]) 
            continue;

        visited[work] = true;

        if (works[work] == 0 || DFS(works[work])) 
        {
            works[work] = n;
            return true;
        }
    }

    return false;
}

int main() 
{

    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    cin >> N >> M;

    for (int i = 1; i &lt;= N; i++) 
    {
        int k, work;
        cin >> k;

        for (int j = 0; j &lt; k; j++) 
        {
            cin >> work;
            employee[i].push_back(work);
        }
    }

    int result = 0;

    for (int i = 1; i &lt;= N; i++) 
    {
        memset(visited, false, sizeof(visited));

        if (DFS(i)) 
            result++;
    }

    cout &lt;&lt; result &lt;&lt; "\n";

    return 0;
}
</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="1041" height="79" src="https://lycos7560.com/wp-content/uploads/2025/05/image-10.png" alt="" class="wp-image-40041" srcset="https://lycos7560.com/wp-content/uploads/2025/05/image-10.png 1041w, https://lycos7560.com/wp-content/uploads/2025/05/image-10-300x23.png 300w, https://lycos7560.com/wp-content/uploads/2025/05/image-10-768x58.png 768w" sizes="(max-width: 1041px) 100vw, 1041px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<p>해당 문제와 코드가 같은 문제</p>



<p><a href="https://www.acmicpc.net/problem/2188" target="_blank" rel="noreferrer noopener">https://www.acmicpc.net/problem/2188</a></p>



<p></p>
<p>The post <a href="https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-11375%eb%b2%88-%ec%97%b4%ed%98%88%ea%b0%95%ed%98%b8-c/40040/">백준 11375번 (열혈강호, C++)</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-11375%eb%b2%88-%ec%97%b4%ed%98%88%ea%b0%95%ed%98%b8-c/40040/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>백준 2188번 (축사 배정, C++) / 추가 반례 [BAEKJOON]</title>
		<link>https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-2188%eb%b2%88-%ec%b6%95%ec%82%ac-%eb%b0%b0%ec%a0%95-c-%ec%b6%94%ea%b0%80-%eb%b0%98%eb%a1%80-baekjoon/40032/</link>
					<comments>https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-2188%eb%b2%88-%ec%b6%95%ec%82%ac-%eb%b0%b0%ec%a0%95-c-%ec%b6%94%ea%b0%80-%eb%b0%98%eb%a1%80-baekjoon/40032/#respond</comments>
		
		<dc:creator><![CDATA[lycos7560]]></dc:creator>
		<pubDate>Sun, 18 May 2025 19:39:58 +0000</pubDate>
				<category><![CDATA[BaekjoonOnlineJudge]]></category>
		<category><![CDATA[C++/CPP]]></category>
		<category><![CDATA[2188]]></category>
		<category><![CDATA[2188번]]></category>
		<category><![CDATA[Baekjoon]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[cpp]]></category>
		<category><![CDATA[dfs]]></category>
		<category><![CDATA[study]]></category>
		<category><![CDATA[공부]]></category>
		<category><![CDATA[기초]]></category>
		<category><![CDATA[백준]]></category>
		<category><![CDATA[백준 2188]]></category>
		<category><![CDATA[백준 2188번]]></category>
		<category><![CDATA[알고리즘]]></category>
		<category><![CDATA[예제]]></category>
		<category><![CDATA[이분 매칭]]></category>
		<category><![CDATA[추가]]></category>
		<category><![CDATA[추가 반례]]></category>
		<category><![CDATA[추가 예제]]></category>
		<category><![CDATA[추가예제]]></category>
		<category><![CDATA[축사 배정]]></category>
		<category><![CDATA[코딩테스트]]></category>
		<category><![CDATA[코테]]></category>
		<guid isPermaLink="false">https://lycos7560.com/?p=40032</guid>

					<description><![CDATA[<p>축사 배정 https://www.acmicpc.net/problem/2188 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 13113 6284 4114 48.785% 문제 농부 존은 소 축사를 완성하였다. 축사 환경을 쾌적하게 유지하기 위해서, 존은 축사를 M개의 칸으로 구분하고, 한 칸에는 최대 한 마리의 소만 들어가게 계획했다. 첫 주에는 소를&#160;임의 배정해서&#160;축사를 운영했으나, 곧 문제가 발생하게 되었다. 바로 [&#8230;]</p>
<p>The post <a href="https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-2188%eb%b2%88-%ec%b6%95%ec%82%ac-%eb%b0%b0%ec%a0%95-c-%ec%b6%94%ea%b0%80-%eb%b0%98%eb%a1%80-baekjoon/40032/">백준 2188번 (축사 배정, C++) / 추가 반례 [BAEKJOON]</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">축사 배정 <img decoding="async" width="30" height="38" class="wp-image-37908" style="width: 30px;" src="https://lycos7560.com/wp-content/uploads/2024/03/Platinum_4.jpg" alt="" srcset="https://lycos7560.com/wp-content/uploads/2024/03/Platinum_4.jpg 400w, https://lycos7560.com/wp-content/uploads/2024/03/Platinum_4-234x300.jpg 234w" sizes="(max-width: 30px) 100vw, 30px" /></h2>



<p><a href="https://www.acmicpc.net/problem/2188" target="_blank" rel="noreferrer noopener">https://www.acmicpc.net/problem/2188</a></p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">시간 제한</th><th class="has-text-align-left" data-align="left">메모리 제한</th><th class="has-text-align-left" data-align="left">제출</th><th class="has-text-align-left" data-align="left">정답</th><th class="has-text-align-left" data-align="left">맞힌 사람</th><th class="has-text-align-left" data-align="left">정답 비율</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left">2 초</td><td class="has-text-align-left" data-align="left">128 MB</td><td class="has-text-align-left" data-align="left">13113</td><td class="has-text-align-left" data-align="left">6284</td><td class="has-text-align-left" data-align="left">4114</td><td class="has-text-align-left" data-align="left">48.785%</td></tr></tbody></table></figure>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">문제</h3>



<p>농부 존은 소 축사를 완성하였다. 축사 환경을 쾌적하게 유지하기 위해서, 존은 축사를 M개의 칸으로 구분하고, 한 칸에는 최대 한 마리의 소만 들어가게 계획했다.</p>



<p>첫 주에는 소를&nbsp;임의 배정해서&nbsp;축사를 운영했으나, 곧 문제가 발생하게 되었다. 바로 소가 자신이&nbsp;희망하는 몇 개의 축사 외에는 들어가기를 거부하는 것이다.</p>



<p>농부 존을&nbsp;도와 최대한 많은 수의 소가 축사에 들어갈 수 있도록 하는 프로그램을 작성하시오. </p>



<p>축사의 번호는 1부터 M까지 매겨져 있다.</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">입력</h3>



<p>첫째 줄에 소의 수 N과 축사의 수 M이 주어진다. (1 ≤ N, M ≤ 200)</p>



<p>둘째 줄부터 N개의 줄에는 각 소가 들어가기 원하는 축사에 대한 정보가 주어진다. </p>



<p>i번째 소가 들어가기 원하는 축사의 수 S<sub>i</sub>&nbsp;(0 ≤ S<sub>i</sub>&nbsp;≤ M)이 먼저 주어지고, 이후 S<sub>i</sub>개의 축사 번호가 주어진다. </p>



<p>같은 축사 번호가 두 번 이상 주어지는 경우는 없다.</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">출력</h3>



<p>첫째 줄에 축사에 들어갈 수 있는 소의 최댓값을 출력한다.</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 입력 1</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">5 5
2 2 5
3 2 3 4
2 1 5
3 1 2 5
1 2</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 출력 1</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">4</pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<p><a href="https://www.acmicpc.net/board/view/137221" target="_blank" rel="noreferrer noopener">https://www.acmicpc.net/board/view/137221</a></p>



<h3 class="wp-block-heading">예제 입력 A</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">4 3
1 1
1 2
1 3
1 3</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 출력 A</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">3</pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 입력 B</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">4 3
0
0
0
0</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 출력 B</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">0</pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 입력 C</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">4 3
1 1
1 2
2 1 2
2 1 2</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 출력 C</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">2</pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 입력 D</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">50 40
2 24 21
1 39
4 30 31 15 18
2 21 3
4 21 40 39 30
1 20
5 20 30 4 29 25
3 39 9 33
1 32
5 27 22 36 2 11
1 9
5 35 29 14 38 1
3 28 22 1
4 18 20 29 22
3 5 11 38
2 36 30
5 9 17 35 10 19
3 18 31 7
3 4 36 30
4 24 12 9 14
3 28 2 27
3 13 6 2
3 6 37 39
4 5 26 15 16
3 25 6 36
2 9 31
3 17 6 7
5 27 4 13 29 30
1 1
1 12
5 3 1 38 8 5
2 14 12
3 17 39 12
3 30 15 26
2 21 3
3 7 6 11
2 28 13
2 25 16
2 19 16
1 13
5 39 24 34 29 33
2 40 10
3 6 35 40
1 37
2 24 35
4 11 22 3 29
3 19 7 16
1 14
1 38
5 31 14 28 19 6</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 출력 D</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">39</pre>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">출처</h3>



<ul class="wp-block-list">
<li>데이터를 추가한 사람:&nbsp;<a href="https://www.acmicpc.net/user/djm03178" target="_blank" rel="noreferrer noopener">djm03178</a>,&nbsp;<a href="https://www.acmicpc.net/user/rubix" target="_blank" rel="noreferrer noopener">rubix</a></li>



<li>문제의 오타를 찾은 사람:&nbsp;<a href="https://www.acmicpc.net/user/hun3555" target="_blank" rel="noreferrer noopener">hun3555</a></li>
</ul>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">알고리즘 분류</h3>



<ul class="wp-block-list">
<li><a href="https://www.acmicpc.net/problem/tag/13" target="_blank" rel="noreferrer noopener">이분 매칭</a></li>
</ul>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--80);margin-bottom:var(--wp--preset--spacing--80)"/>



<h3 class="wp-block-heading">통과된 코드</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="cpp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">#include &lt;iostream>
#include &lt;vector>
#include &lt;cstring>

using namespace std;

int N, M;
vector&lt;int> cowInfo[201]; // 각 소가 원하는 축사 리스트
int barnMatch[201];       // barnMatch[b] = 소 번호 (b번 축사에 배정된 소)
bool visited[201];        // DFS 방문 체크

// 축사 매칭 시도
bool DFS(int cow) 
{

    for (int barn : cowInfo[cow]) 
    {
        if (visited[barn]) 
            continue;

        visited[barn] = true;

        // 이 축사가 비었거나, 이미 배정된 소가 다른 축사로 갈 수 있다면
        if (barnMatch[barn] == 0 || DFS(barnMatch[barn])) 
        {
            barnMatch[barn] = cow;
            return true;
        }
    }

    return false;
}

int main() 
{

    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    cin >> N >> M;

    for (int i = 1; i &lt;= N; i++) 
    {
        int k, barn;
        cin >> k;

        for (int j = 0; j &lt; k; j++) 
        {
            cin >> barn;
            cowInfo[i].push_back(barn);
        }
    }

    int result = 0;

    for (int i = 1; i &lt;= N; i++) 
    {
        memset(visited, false, sizeof(visited));

        if (DFS(i)) 
            result++;
    }

    cout &lt;&lt; result &lt;&lt; "\n";

    return 0;
}
</pre>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1043" height="40" src="https://lycos7560.com/wp-content/uploads/2025/05/image-9.png" alt="" class="wp-image-40035" srcset="https://lycos7560.com/wp-content/uploads/2025/05/image-9.png 1043w, https://lycos7560.com/wp-content/uploads/2025/05/image-9-300x12.png 300w, https://lycos7560.com/wp-content/uploads/2025/05/image-9-768x29.png 768w" sizes="(max-width: 1043px) 100vw, 1043px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<p>백준에 해당 문제와 코드가 같은 문제</p>



<p><a href="https://www.acmicpc.net/problem/11375" target="_blank" rel="noreferrer noopener">https://www.acmicpc.net/problem/11375</a></p>



<p></p>
<p>The post <a href="https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-2188%eb%b2%88-%ec%b6%95%ec%82%ac-%eb%b0%b0%ec%a0%95-c-%ec%b6%94%ea%b0%80-%eb%b0%98%eb%a1%80-baekjoon/40032/">백준 2188번 (축사 배정, C++) / 추가 반례 [BAEKJOON]</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-2188%eb%b2%88-%ec%b6%95%ec%82%ac-%eb%b0%b0%ec%a0%95-c-%ec%b6%94%ea%b0%80-%eb%b0%98%eb%a1%80-baekjoon/40032/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>백준 1918번 (후위 표기식, C++) / 추가 반례 [BAEKJOON]</title>
		<link>https://lycos7560.com/cpp/%eb%b0%b1%ec%a4%80-1918%eb%b2%88-%ed%9b%84%ec%9c%84-%ed%91%9c%ea%b8%b0%ec%8b%9d-c-%ec%b6%94%ea%b0%80-%eb%b0%98%eb%a1%80-baekjoon/39931/</link>
					<comments>https://lycos7560.com/cpp/%eb%b0%b1%ec%a4%80-1918%eb%b2%88-%ed%9b%84%ec%9c%84-%ed%91%9c%ea%b8%b0%ec%8b%9d-c-%ec%b6%94%ea%b0%80-%eb%b0%98%eb%a1%80-baekjoon/39931/#respond</comments>
		
		<dc:creator><![CDATA[lycos7560]]></dc:creator>
		<pubDate>Wed, 13 Nov 2024 00:25:14 +0000</pubDate>
				<category><![CDATA[BaekjoonOnlineJudge]]></category>
		<category><![CDATA[C++/CPP]]></category>
		<category><![CDATA[1918]]></category>
		<category><![CDATA[1918번]]></category>
		<category><![CDATA[Baekjoon]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[cpp]]></category>
		<category><![CDATA[Stack]]></category>
		<category><![CDATA[study]]></category>
		<category><![CDATA[공부]]></category>
		<category><![CDATA[기초]]></category>
		<category><![CDATA[백준]]></category>
		<category><![CDATA[백준 1918번]]></category>
		<category><![CDATA[스택]]></category>
		<category><![CDATA[알고리즘]]></category>
		<category><![CDATA[자료 구조]]></category>
		<category><![CDATA[추가 반례]]></category>
		<category><![CDATA[추가 예제]]></category>
		<category><![CDATA[추가반례]]></category>
		<category><![CDATA[추가예제]]></category>
		<category><![CDATA[코딩테스트]]></category>
		<category><![CDATA[코테]]></category>
		<category><![CDATA[후위 표기식]]></category>
		<guid isPermaLink="false">https://lycos7560.com/?p=39931</guid>

					<description><![CDATA[<p>후위 표기식 https://www.acmicpc.net/problem/1918 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 55502 21600 16530 38.422% 문제 수식은 일반적으로 3가지 표기법으로 표현할 수 있다. 연산자가 피연산자 가운데 위치하는 중위 표기법(일반적으로 우리가 쓰는 방법이다), 연산자가 피연산자 앞에 위치하는 전위 표기법(prefix notation), 연산자가 피연산자 뒤에 위치하는 후위 표기법(postfix notation)이 그것이다. 예를 들어 [&#8230;]</p>
<p>The post <a href="https://lycos7560.com/cpp/%eb%b0%b1%ec%a4%80-1918%eb%b2%88-%ed%9b%84%ec%9c%84-%ed%91%9c%ea%b8%b0%ec%8b%9d-c-%ec%b6%94%ea%b0%80-%eb%b0%98%eb%a1%80-baekjoon/39931/">백준 1918번 (후위 표기식, C++) / 추가 반례 [BAEKJOON]</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">후위 표기식 <img decoding="async" width="30" height="38" class="wp-image-37903" style="width: 30px;" src="https://lycos7560.com/wp-content/uploads/2024/03/Gold_2.jpg" alt="" srcset="https://lycos7560.com/wp-content/uploads/2024/03/Gold_2.jpg 400w, https://lycos7560.com/wp-content/uploads/2024/03/Gold_2-234x300.jpg 234w" sizes="(max-width: 30px) 100vw, 30px" /></h2>



<p><a href="https://www.acmicpc.net/problem/1918" target="_blank" rel="noreferrer noopener">https://www.acmicpc.net/problem/1918</a></p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">시간 제한</th><th class="has-text-align-left" data-align="left">메모리 제한</th><th class="has-text-align-left" data-align="left">제출</th><th class="has-text-align-left" data-align="left">정답</th><th class="has-text-align-left" data-align="left">맞힌 사람</th><th class="has-text-align-left" data-align="left">정답 비율</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left">2 초</td><td class="has-text-align-left" data-align="left">128 MB</td><td class="has-text-align-left" data-align="left">55502</td><td class="has-text-align-left" data-align="left">21600</td><td class="has-text-align-left" data-align="left">16530</td><td class="has-text-align-left" data-align="left">38.422%</td></tr></tbody></table></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">문제</h3>



<p>수식은 일반적으로 3가지 표기법으로 표현할 수 있다. </p>



<p>연산자가 피연산자 가운데 위치하는 중위 표기법(일반적으로 우리가 쓰는 방법이다), </p>



<p>연산자가 피연산자 앞에 위치하는 전위 표기법(prefix notation), 연산자가 피연산자 뒤에 위치하는 후위 표기법(postfix notation)이 그것이다. </p>



<p>예를 들어 중위 표기법으로 표현된 <code>a+b</code>는 전위 표기법으로는 <code>+ab</code>이고, 후위 표기법으로는 <code>ab+</code>가 된다.</p>



<p>이 문제에서 우리가 다룰 표기법은 후위 표기법이다. </p>



<p>후위 표기법은 위에서 말한 법과 같이 연산자가 피연산자 뒤에 위치하는 방법이다. 이 방법의 장점은 다음과 같다.</p>



<p> 우리가 흔히 쓰는 중위 표기식 같은 경우에는 덧셈과 곱셈의 우선순위에 차이가 있어 왼쪽부터 차례로 계산할 수 없지만 후위 표기식을 사용하면 순서를 적절히 조절하여 순서를 정해줄 수 있다. </p>



<p>또한 같은 방법으로 괄호 등도 필요 없게 된다. 예를 들어 <code>a+b*c</code>를 후위 표기식으로 바꾸면 <code>abc*+</code>가 된다.</p>



<p>중위 표기식을 후위 표기식으로 바꾸는 방법을 간단히 설명하면 이렇다. 우선 주어진 중위 표기식을 연산자의 우선순위에 따라 괄호로 묶어준다. </p>



<p>그런 다음에 괄호 안의 연산자를 괄호의 오른쪽으로 옮겨주면 된다. 예를 들어 <code>a+b*c</code>는 <code>(a+(b*c))</code>의 식과 같게 된다. </p>



<p>그 다음에 안에 있는 괄호의 연산자 <code>*</code>를 괄호 밖으로 꺼내게 되면 <code>(a+bc*)</code>가 된다. 마지막으로 또 <code>+</code>를 괄호의 오른쪽으로 고치면 <code>abc*+</code>가 되게 된다.</p>



<p>다른 예를 들어 그림으로 표현하면&nbsp;<code>A+B*C-D/E</code>를 완전하게 괄호로 묶고 연산자를 이동시킬 장소를 표시하면 다음과 같이 된다.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="261" height="143" src="https://lycos7560.com/wp-content/uploads/2025/03/image-12.png" alt="" class="wp-image-39933"/></figure>



<p>이러한 사실을 알고 중위 표기식이 주어졌을 때 후위 표기식으로 고치는 프로그램을 작성하시오</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">입력</h3>



<p>첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 알파벳 대문자로 이루어지며 수식에서 한 번씩만 등장한다. </p>



<p>그리고 <code>-A+B</code>와 같이 <code>-</code>가 가장 앞에 오거나 <code>AB</code>와 같이 <code>*</code>가 생략되는 등의 수식은 주어지지 않는다. </p>



<p>표기식은 알파벳 대문자와 <code>+</code>, <code>-</code>, <code>*</code>, <code>/</code>, <code>(</code>, <code>)</code>로만 이루어져 있으며, 길이는 100을 넘지 않는다. </p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">출력</h3>



<p>첫째 줄에 후위 표기식으로 바뀐 식을 출력하시오</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 입력 1</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">A*(B+C)</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 출력 1</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">ABC+*</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 입력 2</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">A+B</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 출력 2</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">AB+</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 입력 3</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">A+B*C</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 출력 3</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">ABC*+</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 입력 4</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">A+B*C-D/E</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 출력 4</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">ABC*+DE/-</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">출처</h3>



<ul class="wp-block-list">
<li>잘못된 데이터를 찾은 사람: <a href="https://www.acmicpc.net/user/djm03178" target="_blank" rel="noreferrer noopener">djm03178</a></li>



<li>데이터를 추가한 사람: <a href="https://www.acmicpc.net/user/fccva" target="_blank" rel="noreferrer noopener">fccva</a>, <a href="https://www.acmicpc.net/user/gangminson" target="_blank" rel="noreferrer noopener">gangminson</a></li>



<li>빠진 조건을 찾은 사람: <a href="https://www.acmicpc.net/user/jung2381187" target="_blank" rel="noreferrer noopener">jung2381187</a></li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">알고리즘 분류</h3>



<ul class="wp-block-list">
<li><a href="https://www.acmicpc.net/problem/tag/175" target="_blank" rel="noreferrer noopener">자료 구조</a></li>



<li><a href="https://www.acmicpc.net/problem/tag/71" target="_blank" rel="noreferrer noopener">스택</a></li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--80);margin-bottom:var(--wp--preset--spacing--80)"/>



<h3 class="wp-block-heading">예제 입력 A</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">((A+B)*C-(D-E))*(F+G)</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 출력 A</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">AB+C*DE--FG+*</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 입력 B</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">A/B*(C+(D-E))</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 출력 B</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">AB/CDE--+*</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 입력 C</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">B+Y*Z*C+A</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 출력 C</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">BYZ*C*+A+</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 입력 D</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">A+(B*C-(D/E^F)*G)+H</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 출력 D</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">ABC*DEF/G*-+H+</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<p><strong>추가적인 반례</strong> (백준 게시판)</p>



<p><a href="https://www.acmicpc.net/board/view/75399" target="_blank" rel="noreferrer noopener">https://www.acmicpc.net/board/view/75399</a></p>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--80);margin-bottom:var(--wp--preset--spacing--80)"/>



<h3 class="wp-block-heading">통과된 코드</h3>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<pre class="EnlighterJSRAW" data-enlighter-language="cpp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">#include &lt;iostream>
#include &lt;string>
#include &lt;stack>

using namespace std;

string Input, Res;
stack&lt;char> OperStack;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    cin >> Input;

    for (int i = 0; i &lt; Input.length(); i++)
    {
        // 문자가 피연산자(A-Z)인 경우 바로 출력
        if (Input[i] >= 'A' &amp;&amp; Input[i] &lt;= 'Z')
        {
            cout &lt;&lt; Input[i];
        }
        else
        {
            // 문자가 '('인 경우 스택에 푸시
            if (Input[i] == '(')
            {
                OperStack.push(Input[i]);
            }
            // 문자가 '*' 또는 '/'인 경우, 더 높은 또는 같은 우선순위의 연산자를 스택에서 Pop하고 현재 연산자를 스택에 푸시
            else if (Input[i] == '*' || Input[i] == '/')
            {
                while (!OperStack.empty() &amp;&amp; (OperStack.top() == '*' || OperStack.top() == '/'))
                {
                    cout &lt;&lt; OperStack.top();
                    OperStack.pop();
                }
                OperStack.push(Input[i]);
            }
            // 문자가 '+' 또는 '-'인 경우, 더 높은 또는 같은 우선순위의 연산자를 스택에서 Pop하고 현재 연산자를 스택에 푸시
            else if (Input[i] == '+' || Input[i] == '-')
            {
                while (!OperStack.empty() &amp;&amp; OperStack.top() != '(')
                {
                    cout &lt;&lt; OperStack.top();
                    OperStack.pop();
                }
                OperStack.push(Input[i]);
            }
            // 문자가 ')'인 경우, '('를 찾을 때까지 스택에서 연산자를 Pop
            else if (Input[i] == ')')
            {
                while (!OperStack.empty() &amp;&amp; OperStack.top() != '(')
                {
                    cout &lt;&lt; OperStack.top();
                    OperStack.pop();
                }
                // 스택에서 '('를 제거
                OperStack.pop();
            }
        }
    }

    // 스택에 남아있는 모든 연산자를 결과에 추가
    while (!OperStack.empty())
    {
        cout &lt;&lt; OperStack.top();
        OperStack.pop();
    }

    cout &lt;&lt; Res;

    return 0;
}
</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="963" height="76" src="https://lycos7560.com/wp-content/uploads/2025/03/image-13.png" alt="" class="wp-image-39934" srcset="https://lycos7560.com/wp-content/uploads/2025/03/image-13.png 963w, https://lycos7560.com/wp-content/uploads/2025/03/image-13-300x24.png 300w, https://lycos7560.com/wp-content/uploads/2025/03/image-13-768x61.png 768w" sizes="(max-width: 963px) 100vw, 963px" /></figure>
<p>The post <a href="https://lycos7560.com/cpp/%eb%b0%b1%ec%a4%80-1918%eb%b2%88-%ed%9b%84%ec%9c%84-%ed%91%9c%ea%b8%b0%ec%8b%9d-c-%ec%b6%94%ea%b0%80-%eb%b0%98%eb%a1%80-baekjoon/39931/">백준 1918번 (후위 표기식, C++) / 추가 반례 [BAEKJOON]</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lycos7560.com/cpp/%eb%b0%b1%ec%a4%80-1918%eb%b2%88-%ed%9b%84%ec%9c%84-%ed%91%9c%ea%b8%b0%ec%8b%9d-c-%ec%b6%94%ea%b0%80-%eb%b0%98%eb%a1%80-baekjoon/39931/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>백준 16930번 (달리기, C++) / 추가 반례 [BAEKJOON]</title>
		<link>https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-16930%eb%b2%88-%eb%8b%ac%eb%a6%ac%ea%b8%b0-c-%ec%b6%94%ea%b0%80-%eb%b0%98%eb%a1%80-baekjoon/35821/</link>
					<comments>https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-16930%eb%b2%88-%eb%8b%ac%eb%a6%ac%ea%b8%b0-c-%ec%b6%94%ea%b0%80-%eb%b0%98%eb%a1%80-baekjoon/35821/#respond</comments>
		
		<dc:creator><![CDATA[lycos7560]]></dc:creator>
		<pubDate>Mon, 10 Jul 2023 20:28:36 +0000</pubDate>
				<category><![CDATA[BaekjoonOnlineJudge]]></category>
		<category><![CDATA[C++/CPP]]></category>
		<category><![CDATA[16930]]></category>
		<category><![CDATA[16930번]]></category>
		<category><![CDATA[Baekjoon]]></category>
		<category><![CDATA[BFS]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[cpp]]></category>
		<category><![CDATA[study]]></category>
		<category><![CDATA[공부]]></category>
		<category><![CDATA[그래프]]></category>
		<category><![CDATA[그래프 이론]]></category>
		<category><![CDATA[그래프 탐색]]></category>
		<category><![CDATA[기초]]></category>
		<category><![CDATA[너비]]></category>
		<category><![CDATA[너비 우선 탐색]]></category>
		<category><![CDATA[달리기]]></category>
		<category><![CDATA[반례]]></category>
		<category><![CDATA[백준]]></category>
		<category><![CDATA[백준 16930]]></category>
		<category><![CDATA[백준 16930번]]></category>
		<category><![CDATA[알고리즘]]></category>
		<category><![CDATA[예제]]></category>
		<category><![CDATA[추가 반례]]></category>
		<category><![CDATA[추가 예제]]></category>
		<category><![CDATA[추가반례]]></category>
		<category><![CDATA[추가예제]]></category>
		<category><![CDATA[코딩테스트]]></category>
		<category><![CDATA[코테]]></category>
		<guid isPermaLink="false">https://lycos7560.com/?p=35821</guid>

					<description><![CDATA[<p>백준 16930번 '달리기' 문제에 대한 글입니다. 'BFS Search'을 이용하여 문제를 해결하였습니다. (This article is about the "Run" problem of Baek Jun 16930. I solved the problem using 'BFS Search'.)</p>
<p>The post <a href="https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-16930%eb%b2%88-%eb%8b%ac%eb%a6%ac%ea%b8%b0-c-%ec%b6%94%ea%b0%80-%eb%b0%98%eb%a1%80-baekjoon/35821/">백준 16930번 (달리기, C++) / 추가 반례 [BAEKJOON]</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5698326622209671" crossorigin="anonymous"></script>
<!-- HorizontalAD -->
<ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-5698326622209671" data-ad-slot="6908948342" data-ad-format="auto" data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<div style="height:62px" aria-hidden="true" class="wp-block-spacer"></div>


				<div class="wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-fe3d815b      "
					data-scroll= "1"
					data-offset= "30"
					style=""
				>
				<div class="uagb-toc__wrap">
						<div class="uagb-toc__title">
							목차 테이블						</div>
																						<div class="uagb-toc__list-wrap ">
						<ol class="uagb-toc__list"><li class="uagb-toc__list"><a href="#달리기" class="uagb-toc-link__trigger">달리기</a><ul class="uagb-toc__list"><li class="uagb-toc__list"><a href="#추가-반례" class="uagb-toc-link__trigger">추가 반례</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#통과된-코드" class="uagb-toc-link__trigger">통과된 코드</a></ul></ol>					</div>
									</div>
				</div>
			


<div style="height:62px" aria-hidden="true" class="wp-block-spacer"></div>



<h1 class="wp-block-heading">달리기</h1>



<p><a href="https://www.acmicpc.net/problem/16930" target="_blank" rel="noreferrer noopener">https://www.acmicpc.net/problem/16930</a></p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">시간 제한</th><th class="has-text-align-left" data-align="left">메모리 제한</th><th class="has-text-align-left" data-align="left">제출</th><th class="has-text-align-left" data-align="left">정답</th><th class="has-text-align-left" data-align="left">맞힌 사람</th><th class="has-text-align-left" data-align="left">정답 비율</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left">1 초</td><td class="has-text-align-left" data-align="left">512 MB</td><td class="has-text-align-left" data-align="left">6166</td><td class="has-text-align-left" data-align="left">897</td><td class="has-text-align-left" data-align="left">587</td><td class="has-text-align-left" data-align="left">13.454%</td></tr></tbody></table></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading has-large-font-size">문제</h3>



<p>진영이는 다이어트를 위해 N×M 크기의 체육관을 달리려고 한다. </p>



<p>체육관은 1×1 크기의 칸으로 나누어져 있고, 칸은 빈 칸 또는 벽이다.&nbsp;</p>



<p>x행 y열에 있는 칸은 (x, y)로 나타낸다.</p>



<p>매 초마다 진영이는 위, 아래, 오른쪽, 왼쪽&nbsp;중에서 이동할 방향을 하나 고르고, </p>



<p>그 방향으로 최소 1개, 최대 K개의 빈 칸을 이동한다.</p>



<p>시작점 (x<sub>1</sub>, y<sub>1</sub>)과 도착점 (x<sub>2</sub>, y<sub>2</sub>)가 주어졌을 때, </p>



<p>시작점에서 도착점으로 이동하는 최소 시간을 구해보자.</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading has-large-font-size">입력</h3>



<p>첫째 줄에 체육관의 크기 N과 M, 1초에 이동할 수 있는 칸의 최대 개수 K가 주어진다.</p>



<p>둘째 줄부터 N개의 줄에는 체육관의 상태가 주어진다. </p>



<p>체육관의 각 칸은 빈 칸 또는 벽이고, 빈 칸은 &#8216;.&#8217;, 벽은 &#8216;#&#8217;으로 주어진다.</p>



<p>마지막 줄에는 네 정수 x<sub>1</sub>, y<sub>1</sub>, x<sub>2</sub>, y<sub>2</sub>가 주어진다. </p>



<p>두 칸은 서로 다른 칸이고, 항상 빈 칸이다.</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading has-large-font-size">출력</h3>



<p>(x<sub>1</sub>, y<sub>1</sub>)에서 (x<sub>2</sub>, y<sub>2</sub>)로 이동하는 최소 시간을 출력한다. </p>



<p>이동할 수 없는 경우에는 -1을 출력한다.</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading has-large-font-size">제한</h3>



<ul class="wp-block-list">
<li>2 ≤ N, M&nbsp;≤ 1,000</li>



<li>1 ≤ K ≤ 1,000</li>



<li>1 ≤ x<sub>1</sub>, x<sub>2</sub>&nbsp;≤ N</li>



<li>1 ≤ y<sub>1</sub>, y<sub>2</sub>&nbsp;≤ M</li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading has-large-font-size">예제 입력 1</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">3 4 4
....
###.
....
1 1 3 1</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading has-large-font-size">예제 출력 1</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">3</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading has-large-font-size">예제 입력 2</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">3 4 1
....
###.
....
1 1 3 1</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading has-large-font-size">예제 출력 2</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">8</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading has-large-font-size">예제 입력 3</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">2 2 1
.#
#.
1 1 2 2</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading has-large-font-size">예제 출력 3</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">-1</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading has-large-font-size">출처</h3>



<ul class="wp-block-list">
<li>문제를 번역한 사람:&nbsp;<a href="https://www.acmicpc.net/user/baekjoon" target="_blank" rel="noreferrer noopener">baekjoon</a></li>



<li>데이터를 추가한 사람:&nbsp;<a href="https://www.acmicpc.net/user/djm03178" target="_blank" rel="noreferrer noopener">djm03178</a></li>



<li>문제의 오타를 찾은 사람:&nbsp;<a href="https://www.acmicpc.net/user/doju" target="_blank" rel="noreferrer noopener">doju</a>,&nbsp;<a href="https://www.acmicpc.net/user/psi0613" target="_blank" rel="noreferrer noopener">psi0613</a>,&nbsp;<a href="https://www.acmicpc.net/user/seico75" target="_blank" rel="noreferrer noopener">seico75</a></li>



<li>빠진 조건을 찾은 사람:&nbsp;<a href="https://www.acmicpc.net/user/jh05013" target="_blank" rel="noreferrer noopener">jh05013</a></li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading has-large-font-size">알고리즘 분류</h3>



<ul class="wp-block-list">
<li><a href="https://www.acmicpc.net/problem/tag/7" target="_blank" rel="noreferrer noopener">그래프 이론</a></li>



<li><a href="https://www.acmicpc.net/problem/tag/11" target="_blank" rel="noreferrer noopener">그래프 탐색</a></li>



<li><a href="https://www.acmicpc.net/problem/tag/126" target="_blank" rel="noreferrer noopener">너비 우선 탐색</a></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--80);margin-bottom:var(--wp--preset--spacing--80)"/>



<h2 class="wp-block-heading has-large-font-size">추가 반례</h2>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading has-large-font-size">예제 입력 A</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">2 2 1
..
..

0 0 0 0</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading has-large-font-size">예제 출력 A</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">0</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading has-large-font-size">예제 입력 B</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">7 4 4
....
.##.
..#.
#.#.
#...
#.##
#.##
1 1 7 2</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading has-large-font-size">예제 출력 B</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">3</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading has-large-font-size">예제 입력 C</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">7 4 4
....
.##.
.#..
.#.#
...#
##.#
##.#
1 4 7 3</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading has-large-font-size">예제 출력 C</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">3</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://lycos7560.com/wp-content/uploads/2023/07/16930.png" alt="" class="wp-image-35837" width="619" height="369" srcset="https://lycos7560.com/wp-content/uploads/2023/07/16930.png 825w, https://lycos7560.com/wp-content/uploads/2023/07/16930-300x179.png 300w, https://lycos7560.com/wp-content/uploads/2023/07/16930-768x458.png 768w" sizes="(max-width: 619px) 100vw, 619px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p>visited 배열에 방문하는 시점을 넣고 해결하는 경우</p>



<p>if (_isVisted[_dx][_dy] == _cnt)<br>break;</p>



<p>위 로직으로 진행한다면 탐색하는 방향의 순서(상, 하, 좌, 우)에 따라 답이 3 ~ 4로 달라집니다.</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading has-large-font-size">예제 입력 D</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">3 3 3
..#
..#
#..
1 1 3 3</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading has-large-font-size">예제 출력 D</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">3</pre>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading has-large-font-size">통과된 코드</h2>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<pre class="EnlighterJSRAW" data-enlighter-language="cpp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">#include &lt;iostream>
#include &lt;queue>
using namespace std;

int _N, _M, _K, _Temp1, _Temp2, _Res;
int _DxDy[4][2] = { { 1, 0}, { -1, 0}, { 0, 1}, { 0, -1} };
char _Map[1000][1000];
int _isVisted[1000][1000];
string _Str;
pair&lt;int, int> _sePos[2];
queue&lt;pair&lt;int, pair&lt;int, int>>> _BFSQueue;

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	cin >> _N >> _M >> _K;
	for (int i = 0; i &lt; _N; i++) {
		cin >> _Str;
		for (int j = 0; j &lt; _M; j++) 
			_Map[i][j] = _Str[j];
	}
	for (int i = 0; i &lt; 2; i++) {
		cin >> _Temp1 >> _Temp2;
		_sePos[i] = make_pair(_Temp1 - 1, _Temp2 - 1);
	}

	for (int i = 0; i &lt; _N; i++) 
		for (int j = 0; j &lt; _M; j++)
			_isVisted[i][j] = INT32_MAX;
	
	_BFSQueue.push(make_pair(0, _sePos[0]));
	_isVisted[_sePos[0].first][_sePos[0].second] = 0;
	pair&lt;int, int> _CntPos;
	int _dx, _dy, _cnt;
	while (!_BFSQueue.empty()) {
		_CntPos = _BFSQueue.front().second;
		_cnt = _BFSQueue.front().first;
		_BFSQueue.pop();
		if (_CntPos == _sePos[1]) {
			_Res = _cnt;
			break;
		}
		_cnt++;
		for (int i = 0; i &lt; 4; i++) {
			for (int j = 1; j &lt;= _K; j++) {
				_dx = _CntPos.first + _DxDy[i][0] * j;
				_dy = _CntPos.second + _DxDy[i][1] * j;
				if (_dx >= _N || _dy >= _M || _dx &lt; 0 || _dy &lt; 0 || _Map[_dx][_dy] == '#')
					break;
				if (_isVisted[_dx][_dy] &lt; _cnt)
					break;
				if (_isVisted[_dx][_dy] == _cnt)
					continue;

				_BFSQueue.push(make_pair(_cnt, make_pair(_dx,_dy)));
				_isVisted[_dx][_dy] = _cnt;
			}
		}
	}

	if (_sePos[0] == _sePos[1]) cout &lt;&lt; _Res;
	else if (_Res == 0) cout &lt;&lt; -1;
	else cout &lt;&lt; _Res;

	return 0;
}</pre>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="967" height="155" src="https://lycos7560.com/wp-content/uploads/2023/07/image-19.png" alt="" class="wp-image-35831" srcset="https://lycos7560.com/wp-content/uploads/2023/07/image-19.png 967w, https://lycos7560.com/wp-content/uploads/2023/07/image-19-300x48.png 300w, https://lycos7560.com/wp-content/uploads/2023/07/image-19-768x123.png 768w" sizes="(max-width: 967px) 100vw, 967px" /></figure>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5698326622209671" crossorigin="anonymous"></script>
<ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5698326622209671" data-ad-slot="4245812909"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>
<p>The post <a href="https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-16930%eb%b2%88-%eb%8b%ac%eb%a6%ac%ea%b8%b0-c-%ec%b6%94%ea%b0%80-%eb%b0%98%eb%a1%80-baekjoon/35821/">백준 16930번 (달리기, C++) / 추가 반례 [BAEKJOON]</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-16930%eb%b2%88-%eb%8b%ac%eb%a6%ac%ea%b8%b0-c-%ec%b6%94%ea%b0%80-%eb%b0%98%eb%a1%80-baekjoon/35821/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Programmers 150369 택배 배달과 수거하기 [2023 KAKAO BLIND RECRUITMENT]</title>
		<link>https://lycos7560.com/cpp/programmers/programmers-150369-%ed%83%9d%eb%b0%b0-%eb%b0%b0%eb%8b%ac%ea%b3%bc-%ec%88%98%ea%b1%b0%ed%95%98%ea%b8%b0-2023-kakao-blind-recruitment/35501/</link>
					<comments>https://lycos7560.com/cpp/programmers/programmers-150369-%ed%83%9d%eb%b0%b0-%eb%b0%b0%eb%8b%ac%ea%b3%bc-%ec%88%98%ea%b1%b0%ed%95%98%ea%b8%b0-2023-kakao-blind-recruitment/35501/#respond</comments>
		
		<dc:creator><![CDATA[lycos7560]]></dc:creator>
		<pubDate>Fri, 16 Jun 2023 04:20:23 +0000</pubDate>
				<category><![CDATA[C++/CPP]]></category>
		<category><![CDATA[programmers]]></category>
		<category><![CDATA[[2023 KAKAO BLIND RECRUITMENT]]]></category>
		<category><![CDATA[150369]]></category>
		<category><![CDATA[150369번]]></category>
		<category><![CDATA[2023 KAKAO BLIND RECRUITMENT]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[cpp]]></category>
		<category><![CDATA[Programmers 150369]]></category>
		<category><![CDATA[Programmers 150369번]]></category>
		<category><![CDATA[study]]></category>
		<category><![CDATA[공부]]></category>
		<category><![CDATA[기초]]></category>
		<category><![CDATA[반례]]></category>
		<category><![CDATA[알고리즘]]></category>
		<category><![CDATA[예제]]></category>
		<category><![CDATA[추가 반례]]></category>
		<category><![CDATA[추가 예제]]></category>
		<category><![CDATA[추가반례]]></category>
		<category><![CDATA[추가예제]]></category>
		<category><![CDATA[코딩테스트]]></category>
		<category><![CDATA[코테]]></category>
		<category><![CDATA[택배 배달과 수거하기]]></category>
		<guid isPermaLink="false">https://lycos7560.com/?p=35501</guid>

					<description><![CDATA[<p>Programmers 150369번 '택배 배달과 수거하기' 문제에 대한 글입니다. (This article is about the issue of 'Delivery and Collection' in Programmers Number 150369) [2023 KAKAO BLIND RECRUITMENT]</p>
<p>The post <a href="https://lycos7560.com/cpp/programmers/programmers-150369-%ed%83%9d%eb%b0%b0-%eb%b0%b0%eb%8b%ac%ea%b3%bc-%ec%88%98%ea%b1%b0%ed%95%98%ea%b8%b0-2023-kakao-blind-recruitment/35501/">Programmers 150369 택배 배달과 수거하기 [2023 KAKAO BLIND RECRUITMENT]</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5698326622209671" crossorigin="anonymous"></script>
<!-- HorizontalAD -->
<ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-5698326622209671" data-ad-slot="6908948342" data-ad-format="auto" data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>


				<div class="wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-2ad27311      "
					data-scroll= "1"
					data-offset= "30"
					style=""
				>
				<div class="uagb-toc__wrap">
						<div class="uagb-toc__title">
							목차						</div>
																						<div class="uagb-toc__list-wrap ">
						<ol class="uagb-toc__list"><li class="uagb-toc__list"><a href="#택배-배달과-수거하기" class="uagb-toc-link__trigger">택배 배달과 수거하기</a><ul class="uagb-toc__list"><li class="uagb-toc__list"><a href="#통과된-코드" class="uagb-toc-link__trigger">통과된 코드</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#더-효율적인-코드" class="uagb-toc-link__trigger">더 효율적인 코드</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#추가-반례" class="uagb-toc-link__trigger">추가 반례</a></ul></ol>					</div>
									</div>
				</div>
			


<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h1 class="wp-block-heading">택배 배달과 수거하기</h1>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p><a href="https://school.programmers.co.kr/learn/courses/30/lessons/150369">https://school.programmers.co.kr/learn/courses/30/lessons/150369</a></p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="930" height="271" src="https://lycos7560.com/wp-content/uploads/2023/06/image-33.png" alt="" class="wp-image-35504" srcset="https://lycos7560.com/wp-content/uploads/2023/06/image-33.png 930w, https://lycos7560.com/wp-content/uploads/2023/06/image-33-300x87.png 300w, https://lycos7560.com/wp-content/uploads/2023/06/image-33-768x224.png 768w" sizes="(max-width: 930px) 100vw, 930px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p>당신은 일렬로 나열된 <code>n</code>개의 집에 택배를 배달하려 합니다. </p>



<p>배달할 물건은 모두 크기가 같은 재활용 택배 상자에 담아 배달하며, 배달을 다니면서 빈 재활용 택배 상자들을 수거하려 합니다.</p>



<p>배달할 택배들은 모두 재활용 택배 상자에 담겨서 물류창고에 보관되어 있고, <code>i</code>번째 집은 물류창고에서 거리 <code>i</code>만큼 떨어져 있습니다. </p>



<p>또한 <code>i</code>번째 집은 <code>j</code>번째 집과 거리 <code>j - i</code>만큼 떨어져 있습니다. (1 ≤ <code>i</code> ≤ <code>j</code> ≤ <code>n</code>)</p>



<p>트럭에는 재활용 택배 상자를 최대 <code>cap</code>개 실을 수 있습니다. </p>



<p>트럭은 배달할 재활용 택배 상자들을 실어 물류창고에서 출발해 각 집에 배달하면서, 빈 재활용 택배 상자들을 수거해 물류창고에 내립니다. </p>



<p>각 집마다 배달할 재활용 택배 상자의 개수와 수거할 빈 재활용 택배 상자의 개수를 알고 있을 때, </p>



<p>트럭 하나로 모든 배달과 수거를 마치고 물류창고까지 돌아올 수 있는 최소 이동 거리를 구하려 합니다. </p>



<p><strong>각 집에 배달 및 수거할 때, 원하는 개수만큼 택배를 배달 및 수거할 수 있습니다.</strong></p>



<p>다음은 <code>cap</code>=4 일 때, 최소 거리로 이동하면서 5개의 집에 배달 및 수거하는 과정을 나타낸 예시입니다.</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size"><strong>배달 및 수거할 재활용 택배 상자 개수</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left"></th><th class="has-text-align-left" data-align="left">집 #1</th><th class="has-text-align-left" data-align="left">집 #2</th><th class="has-text-align-left" data-align="left">집 #3</th><th class="has-text-align-left" data-align="left">집 #4</th><th class="has-text-align-left" data-align="left">집 #5</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left">배달</td><td class="has-text-align-left" data-align="left">1개</td><td class="has-text-align-left" data-align="left">0개</td><td class="has-text-align-left" data-align="left">3개</td><td class="has-text-align-left" data-align="left">1개</td><td class="has-text-align-left" data-align="left">2개</td></tr><tr><td class="has-text-align-left" data-align="left">수거</td><td class="has-text-align-left" data-align="left">0개</td><td class="has-text-align-left" data-align="left">3개</td><td class="has-text-align-left" data-align="left">0개</td><td class="has-text-align-left" data-align="left">4개</td><td class="has-text-align-left" data-align="left">0개</td></tr></tbody></table></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size"><strong>배달 및 수거 과정</strong></p>



<figure class="wp-block-table"><table><thead><tr><th></th><th>집 #1</th><th>집 #2</th><th>집 #3</th><th>집 #4</th><th>집 #5</th><th>설명</th></tr></thead><tbody><tr><td>남은 배달/수거</td><td>1/0</td><td>0/3</td><td>3/0</td><td>1/4</td><td>2/0</td><td>물류창고에서 택배 3개를 트럭에 실어 출발합니다.</td></tr><tr><td>남은 배달/수거</td><td>1/0</td><td>0/3</td><td>3/0</td><td><strong>0</strong>/4</td><td><strong>0</strong>/0</td><td>물류창고에서 5번째 집까지 이동하면서(거리 5) 4번째 집에 택배 1개를 배달하고, 5번째 집에 택배 2개를 배달합니다.</td></tr><tr><td>남은 배달/수거</td><td>1/0</td><td>0/3</td><td>3/0</td><td>0/<strong>0</strong></td><td>0/0</td><td>5번째 집에서 물류창고까지 이동하면서(거리 5) 4번째 집에서 빈 택배 상자 4개를 수거한 후, 수거한 빈 택배 상자를 물류창고에 내리고 택배 4개를 트럭에 싣습니다.</td></tr><tr><td>남은 배달/수거</td><td><strong>0</strong>/0</td><td>0/3</td><td><strong>0</strong>/0</td><td>0/0</td><td>0/0</td><td>물류창고에서 3번째 집까지 이동하면서(거리 3) 1번째 집에 택배 1개를 배달하고, 3번째 집에 택배 3개를 배달합니다.</td></tr><tr><td>남은 배달/수거</td><td>0/0</td><td>0/<strong>0</strong></td><td>0/0</td><td>0/0</td><td>0/0</td><td>3번째 집에서 물류창고까지 이동하면서(거리 3) 2번째 집에서 빈 택배 상자 3개를 수거한 후, 수거한 빈 택배 상자를 물류창고에 내립니다.</td></tr></tbody></table></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<p>16(=5+5+3+3)의 거리를 이동하면서 모든 배달 및 수거를 마쳤습니다. </p>



<p>같은 거리로 모든 배달 및 수거를 마치는 다른 방법이 있지만, </p>



<p>이보다 짧은 거리로 모든 배달 및 수거를 마치는 방법은 없습니다.</p>



<p>트럭에 실을 수 있는 재활용 택배 상자의 최대 개수를 나타내는 정수 <code>cap</code>, 배달할 집의 개수를 나타내는 정수 <code>n</code>, </p>



<p>각 집에 배달할 재활용 택배 상자의 개수를 담은 1차원 정수 배열 <code>deliveries</code>와 </p>



<p>각 집에서 수거할 빈 재활용 택배 상자의 개수를 담은 1차원 정수 배열 <code>pickups</code>가 매개변수로 주어집니다. </p>



<p>이때, 트럭 하나로 모든 배달과 수거를 마치고 물류창고까지 돌아올 수 있는 최소 이동 거리를 return 하도록 solution 함수를 완성해 주세요.</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h5 class="wp-block-heading has-medium-font-size">제한사항</h5>



<ul class="wp-block-list">
<li>1 ≤&nbsp;<code>cap</code>&nbsp;≤ 50</li>



<li>1 ≤&nbsp;<code>n</code>&nbsp;≤ 100,000</li>



<li><code>deliveries</code>의 길이 = <code>pickups</code>의 길이 = <code>n</code>
<ul class="wp-block-list">
<li><code>deliveries[i]</code>는 i+1번째 집에 배달할 재활용 택배 상자의 개수를 나타냅니다.</li>



<li><code>pickups[i]</code>는 i+1번째 집에서 수거할 빈 재활용 택배 상자의 개수를 나타냅니다.</li>



<li>0 ≤&nbsp;<code>deliveries</code>의 원소 ≤ 50</li>



<li>0 ≤&nbsp;<code>pickups</code>의 원소 ≤ 50</li>
</ul>
</li>



<li>트럭의 초기 위치는 물류창고입니다.</li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h5 class="wp-block-heading">입출력 예</h5>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">cap</th><th class="has-text-align-left" data-align="left">n</th><th class="has-text-align-left" data-align="left">deliveries</th><th class="has-text-align-left" data-align="left">pickups</th><th class="has-text-align-left" data-align="left">result</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left">4</td><td class="has-text-align-left" data-align="left">5</td><td class="has-text-align-left" data-align="left">[1, 0, 3, 1, 2]</td><td class="has-text-align-left" data-align="left">[0, 3, 0, 4, 0]</td><td class="has-text-align-left" data-align="left">16</td></tr><tr><td class="has-text-align-left" data-align="left">2</td><td class="has-text-align-left" data-align="left">7</td><td class="has-text-align-left" data-align="left">[1, 0, 2, 0, 1, 0, 2]</td><td class="has-text-align-left" data-align="left">[0, 2, 0, 1, 0, 2, 0]</td><td class="has-text-align-left" data-align="left">30</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--80);margin-bottom:var(--wp--preset--spacing--80)"/>



<h5 class="wp-block-heading has-medium-font-size">입출력 예 설명</h5>



<p class="has-medium-font-size"><strong>입출력 예 #1</strong></p>



<ul class="wp-block-list">
<li>문제 예시와 동일합니다.</li>
</ul>



<p class="has-medium-font-size"><strong>입출력 예 #2</strong></p>



<p class="has-medium-font-size"><strong>배달 및 수거할 재활용 택배 상자 개수</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th></th><th class="has-text-align-left" data-align="left">집 #1</th><th class="has-text-align-left" data-align="left">집 #2</th><th class="has-text-align-left" data-align="left">집 #3</th><th class="has-text-align-left" data-align="left">집 #4</th><th class="has-text-align-left" data-align="left">집 #5</th><th class="has-text-align-left" data-align="left">집 #6</th><th class="has-text-align-left" data-align="left">집 #7</th></tr></thead><tbody><tr><td>배달</td><td class="has-text-align-left" data-align="left">1개</td><td class="has-text-align-left" data-align="left">0개</td><td class="has-text-align-left" data-align="left">2개</td><td class="has-text-align-left" data-align="left">0개</td><td class="has-text-align-left" data-align="left">1개</td><td class="has-text-align-left" data-align="left">0개</td><td class="has-text-align-left" data-align="left">2개</td></tr><tr><td>수거</td><td class="has-text-align-left" data-align="left">0개</td><td class="has-text-align-left" data-align="left">2개</td><td class="has-text-align-left" data-align="left">0개</td><td class="has-text-align-left" data-align="left">1개</td><td class="has-text-align-left" data-align="left">0개</td><td class="has-text-align-left" data-align="left">2개</td><td class="has-text-align-left" data-align="left">0개</td></tr></tbody></table></figure>



<p class="has-medium-font-size"><strong>배달 및 수거 과정</strong></p>



<figure class="wp-block-table"><table><thead><tr><th></th><th>집 #1</th><th>집 #2</th><th>집 #3</th><th>집 #4</th><th>집 #5</th><th>집 #6</th><th>집 #7</th><th class="has-text-align-left" data-align="left">설명</th></tr></thead><tbody><tr><td>남은 배달/수거</td><td>1/0</td><td>0/2</td><td>2/0</td><td>0/1</td><td>1/0</td><td>0/2</td><td>2/0</td><td class="has-text-align-left" data-align="left">물류창고에서 택배 2개를 트럭에 실어 출발합니다.</td></tr><tr><td>남은 배달/수거</td><td>1/0</td><td>0/2</td><td>2/0</td><td>0/1</td><td>1/0</td><td>0/2</td><td><strong>0</strong>/0</td><td class="has-text-align-left" data-align="left">물류창고에서 7번째 집까지 이동하면서(거리 7) 7번째 집에 택배 2개를 배달합니다.</td></tr><tr><td>남은 배달/수거</td><td>1/0</td><td>0/2</td><td>2/0</td><td>0/1</td><td>1/0</td><td>0/<strong>0</strong></td><td><strong>0</strong>/0</td><td class="has-text-align-left" data-align="left">7번째 집에서 물류창고까지 이동하면서(거리 7) 6번째 집에서 빈 택배 상자 2개를 수거한 후, 수거한 빈 택배 상자를 물류창고에 내리고 택배 2개를 트럭에 싣습니다.</td></tr><tr><td>남은 배달/수거</td><td>1/0</td><td>0/2</td><td><strong>1</strong>/0</td><td>0/1</td><td><strong>0</strong>/0</td><td>0/0</td><td>0/0</td><td class="has-text-align-left" data-align="left">물류창고에서 5번째 집까지 이동하면서(거리 5) 3번째 집에 택배 1개를 배달하고, 5번째 집에 택배 1개를 배달합니다.</td></tr><tr><td>남은 배달/수거</td><td>1/0</td><td>0/<strong>1</strong></td><td>1/0</td><td>0/<strong>0</strong></td><td>0/0</td><td>0/0</td><td>0/0</td><td class="has-text-align-left" data-align="left">5번째 집에서 물류창고까지 이동하면서(거리 5) 4번째 집에서 빈 택배 상자 1개를 수거하고 2번째 집에서 빈 택배 상자 1개를 수거한 후, 수거한 빈 택배 상자를 물류창고에 내리고 택배 2개를 트럭에 싣습니다.</td></tr><tr><td>남은 배달/수거</td><td><strong>0</strong>/0</td><td>0/1</td><td><strong>0</strong>/0</td><td>0/0</td><td>0/0</td><td>0/0</td><td>0/0</td><td class="has-text-align-left" data-align="left">물류창고에서 3번째 집까지 이동하면서(거리 3) 1번째 집에 택배 1개를 배달하고, 3번째 집에 택배 1개를 배달합니다.</td></tr><tr><td>남은 배달/수거</td><td>0/0</td><td>0/<strong>0</strong></td><td>0/0</td><td>0/0</td><td>0/0</td><td>0/0</td><td>0/0</td><td class="has-text-align-left" data-align="left">3번째 집에서 물류창고까지 이동하면서(거리 3) 2번째 집에서 빈 택배 상자 1개를 수거한 후, 수거한 빈 택배 상자를 물류창고에 내립니다.</td></tr></tbody></table></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p>30(=7+7+5+5+3+3)의 거리를 이동하면서 모든 배달 및 수거를 마쳤습니다. </p>



<p>같은 거리로 모든 배달 및 수거를 마치는 다른 방법이 있지만, 이보다 짧은 거리로 모든 배달 및 수거를 마치는 방법은 없습니다.</p>



<p>따라서, 30을 return 하면 됩니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--80);margin-bottom:var(--wp--preset--spacing--80)"/>



<h2 class="wp-block-heading">통과된 코드</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="cpp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">#include &lt;string>
#include &lt;vector>

using namespace std;

long long solution(int cap, int n, vector&lt;int> deliveries, vector&lt;int> pickups) {
	long long answer = 0;
	int _delP = -1, _picP = -1;

	for (int i = deliveries.size() - 1; i >= 0; i--)
		if (deliveries[i]) {
			_delP = i;
			break;
		}
	for (int i = pickups.size() - 1; i >= 0; i--)
		if (pickups[i]) {
			_picP = i;
			break;
		}

	while (_delP >= 0 || _picP >= 0) {
		answer += (max(_delP, _picP) + 1) * 2;
		int _del = cap, _pic = cap;
		for (int i = _delP; i >= 0; i--) {
			if (_del >= deliveries[i]) _del -= deliveries[i];
			else {
				deliveries[i] -= _del;
				break;
			}
			_delP--;
		}

		for (int i = _picP; i >= 0; i--) {
			if (_pic >= pickups[i]) _pic -= pickups[i];
			else {
				pickups[i] -= _pic;
				break;
			}
			_picP--;
		}
	}
    
	return answer;
}</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="372" height="491" src="https://lycos7560.com/wp-content/uploads/2023/06/image-34.png" alt="" class="wp-image-35507" srcset="https://lycos7560.com/wp-content/uploads/2023/06/image-34.png 372w, https://lycos7560.com/wp-content/uploads/2023/06/image-34-227x300.png 227w" sizes="(max-width: 372px) 100vw, 372px" /></figure>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">더 효율적인 코드</h2>



<p><a href="https://school.programmers.co.kr/questions/43364" target="_blank" rel="noreferrer noopener">https://school.programmers.co.kr/questions/43364</a></p>



<pre class="EnlighterJSRAW" data-enlighter-language="cpp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">#include &lt;string>
#include &lt;vector>

using namespace std;

long long solution(int cap, int n, vector&lt;int> deliveries, vector&lt;int> pickups) {
    long long answer = 0;

    int d = 0;
    int p = 0;
    // 역순으로 벡터를 탐색
    for (int i = n - 1; i >= 0; i--) {
        int cnt = 0; // 왕복 횟수 초기화
        d -= deliveries[i]; // 배달
        p -= pickups[i]; // 픽업 

        // 해당 인덱스를 몇번 반복
        while (d &lt; 0 || p &lt; 0) {
            d += cap;
            p += cap;
            // 해당 위치를 반복하는 횟수를 올려준다
            cnt += 1;
        }
        // (인덱스까지의 거리) * 왕복(2) * 왕복횟수
        answer += (i + 1) * 2 * cnt;
    }

    return answer;
}</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="345" height="464" src="https://lycos7560.com/wp-content/uploads/2023/06/image-35.png" alt="" class="wp-image-35514" srcset="https://lycos7560.com/wp-content/uploads/2023/06/image-35.png 345w, https://lycos7560.com/wp-content/uploads/2023/06/image-35-223x300.png 223w" sizes="(max-width: 345px) 100vw, 345px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">출처 : https://school.programmers.co.kr/questions/43364

필자는 생각합니다.

카카오가 코테의 수준을 너무나도 높여버렸습니다.

이젠 레벨2와 레벨3의 구분이라는 것이 있는지 모르겠습니다.

난이도가 다 레벨3이 된 것 같은 기분은 저만 드는 것일까요?

cap만큼의 공간을 사용하여, 배달도 수행하고, 회수도 수행해야 합니다.

이 문제를 풀기위한 당연한 기준들을 한 번 정리해보려고 합니다.

배달할 물건이나, 회수할 물건이 i번째 까지 존재한다면, 당신은 반드시 i번째 까지는 적어도 한 번은 가야합니다.

한 번 출발하여, 물류창고로 돌아오면, cap만큼의 배달을 수행할 수 있고, cap만큼의 물건을 회수 해 올 수 있습니다.

한 곳에서 택배를 전부 배달하지 못했거나, 회수하지 못했다면, 당신은 물류창고로 돌아왔다가, 다시 같은 장소로 떠나야 합니다.

아마, 이 문제들을 심히 고민해보았다면, 3가지의 정의는 내릴 수 있어야 합니다.

그리고 2번 정의에 따라, 물건의 전달이나, 물건의 회수는 항상 최대 cap만큼 수행 할 수 있다는 사실을 알 수 있습니다.

아마, 이해가 되지 않을 수 있습니다. 전달해야 할 물건이 너무 많아서 회수가 불가능한 상황이 생길 수 있지 않느냐고 말이죠.

하지만, 그 문제는 배열을 거꾸로 탐색하면 쉽게 해결 할 수 있습니다.

1번 정의에 따라, 당신은 반드시 전달할 물건이나, 회수할 물건이 있는 장소까지는 도달해야 합니다.

거꾸로 배열을 탐색한다는 의미는, 이미 방문이 가능한 모든 지점들을 왕복했다는 가정하에 문제를 풀게 됩니다.

물류창고에서, 목적지 까지 가는데, 택배가 너무 많아 회수가 불가능 하였다면, 돌아올 때는 이미 모든 장소를 한 번씩 들렸기에,

트럭에 물건이 비어있게 됩니다. 이 때 회수하면 됩니다.

이로써 이런 정의들을 단순화 시켜보자면, 사실 물건을 전달하는 것과, 회수하는 것은 별개로 봐도 상관이 없습니다.

그리고 이 문제는 Greedy한 문제가 됩니다.

트럭이 한 번 떠나게 되면, cap만큼의 물건을 배달할 수 있고, cap만큼의 물건을 회수 할 수 있다는 사실을 이해했다면,

이 문제의 절반을 풀었다고 무방합니다.

이제 배열을 거꾸로 탐색하여, 전달 한 물건이나, 회수 할 물건이 있는지 탐색을 수행합니다.

만약 존재한다면, 해당 값을 어딘가에서 감소 시켜줍니다.

그리고, 전달 할 물건이나 회수 할 물건이 존재하였기에, cap만큼의 배달량, cap만큼의 회수량을 처리 할 수 있다고,

이 값을 증가 시켜줍니다.

만약 한 번 해당 장소에 방문 한 것으로, 커버가 되지 않는다면, 다시 방문하여, cap만큼의 배달량, 회수량을 증가 시켜줍니다.

그 대신에 answer에 추가 할 때는 반복 횟수 만큼 곱해주어야 합니다.

여기서 중요합니다.

cap만큼의 배달량, 회수량을 그대로 사용하여, 다음 값을 계산할 때 그대로 이용합니다.

deliveries[i]가 2, pickups[i]가 3 이고 cap이 3이라고 하면, pickups의 값은 1만큼의 잉여 회수량이 남게 됩니다.

배열을 거꾸로 탐색한다는 의미는, i번째까지 이미 도달하고, 다시 물류창고로 돌아간다는 왕복운동의 기준으로 고려한다는 의미입니다.

이 때 잉여량이 발생하였다면, 어차피 이전 장소에서 한 번 더 사용하면 효율성 높게 업무를 처리 할 수 있게 됩니다.

여기서 주의할 점은, deliveries[i]와 pickups[i]를 가감해도 배달량과 회수량이 남아있다고 하면,

answer에 답을 추가 할 필요가 없습니다. 잉여량이 현재 배달량과 회수량을 커버하므로, 이 경우는 답을 추가하는 실수를 저지르지 맙시다.

설명을 쓰고도 제가 무슨 소리를 하는지 모르는 상황이 되었습니다.

그래도 이 문제를 깊게 고민하였다면, 약간의 도움이 됬으리라고 생각합니다.

감사합니다.</pre>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">추가 반례</h2>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">cap</th><th class="has-text-align-left" data-align="left">n</th><th class="has-text-align-left" data-align="left">deliveries</th><th class="has-text-align-left" data-align="left">pickups</th><th class="has-text-align-left" data-align="left">result</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left">2</td><td class="has-text-align-left" data-align="left">2</td><td class="has-text-align-left" data-align="left">[0, 0]</td><td class="has-text-align-left" data-align="left">[0, 4]</td><td class="has-text-align-left" data-align="left">8</td></tr><tr><td class="has-text-align-left" data-align="left">2</td><td class="has-text-align-left" data-align="left">2</td><td class="has-text-align-left" data-align="left">[0, 0]</td><td class="has-text-align-left" data-align="left">[0, 0]</td><td class="has-text-align-left" data-align="left">0</td></tr><tr><td class="has-text-align-left" data-align="left">2</td><td class="has-text-align-left" data-align="left">2</td><td class="has-text-align-left" data-align="left">[0, 6]</td><td class="has-text-align-left" data-align="left">[0, 0]</td><td class="has-text-align-left" data-align="left">12</td></tr><tr><td class="has-text-align-left" data-align="left">1</td><td class="has-text-align-left" data-align="left">2</td><td class="has-text-align-left" data-align="left">[12, 0]</td><td class="has-text-align-left" data-align="left">[0, 12]</td><td class="has-text-align-left" data-align="left">48</td></tr><tr><td class="has-text-align-left" data-align="left">4</td><td class="has-text-align-left" data-align="left">4</td><td class="has-text-align-left" data-align="left">[25, 24, 51, 0]</td><td class="has-text-align-left" data-align="left">[51, 0, 0, 49]</td><td class="has-text-align-left" data-align="left">140</td></tr><tr><td class="has-text-align-left" data-align="left">5</td><td class="has-text-align-left" data-align="left">3</td><td class="has-text-align-left" data-align="left">[1, 6, 9]</td><td class="has-text-align-left" data-align="left">[5, 10, 20]</td><td class="has-text-align-left" data-align="left">34</td></tr></tbody></table></figure>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5698326622209671" crossorigin="anonymous"></script>
<ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5698326622209671" data-ad-slot="4245812909"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>
<p>The post <a href="https://lycos7560.com/cpp/programmers/programmers-150369-%ed%83%9d%eb%b0%b0-%eb%b0%b0%eb%8b%ac%ea%b3%bc-%ec%88%98%ea%b1%b0%ed%95%98%ea%b8%b0-2023-kakao-blind-recruitment/35501/">Programmers 150369 택배 배달과 수거하기 [2023 KAKAO BLIND RECRUITMENT]</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lycos7560.com/cpp/programmers/programmers-150369-%ed%83%9d%eb%b0%b0-%eb%b0%b0%eb%8b%ac%ea%b3%bc-%ec%88%98%ea%b1%b0%ed%95%98%ea%b8%b0-2023-kakao-blind-recruitment/35501/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Programmers 150366 표 병합 [2023 KAKAO BLIND RECRUITMENT]</title>
		<link>https://lycos7560.com/cpp/programmers/programmers-150366-%ed%91%9c-%eb%b3%91%ed%95%a9-2022-kakao-blind-recruitment/35409/</link>
					<comments>https://lycos7560.com/cpp/programmers/programmers-150366-%ed%91%9c-%eb%b3%91%ed%95%a9-2022-kakao-blind-recruitment/35409/#respond</comments>
		
		<dc:creator><![CDATA[lycos7560]]></dc:creator>
		<pubDate>Sun, 11 Jun 2023 13:55:31 +0000</pubDate>
				<category><![CDATA[C++/CPP]]></category>
		<category><![CDATA[programmers]]></category>
		<category><![CDATA[[2023 KAKAO BLIND RECRUITMENT]]]></category>
		<category><![CDATA[150366]]></category>
		<category><![CDATA[150366번]]></category>
		<category><![CDATA[2023 KAKAO BLIND RECRUITMENT]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[cpp]]></category>
		<category><![CDATA[Programmers 150366]]></category>
		<category><![CDATA[Programmers 150366번]]></category>
		<category><![CDATA[study]]></category>
		<category><![CDATA[공부]]></category>
		<category><![CDATA[기초]]></category>
		<category><![CDATA[반례]]></category>
		<category><![CDATA[알고리즘]]></category>
		<category><![CDATA[예제]]></category>
		<category><![CDATA[추가 반례]]></category>
		<category><![CDATA[추가 예제]]></category>
		<category><![CDATA[추가반례]]></category>
		<category><![CDATA[추가예제]]></category>
		<category><![CDATA[코딩테스트]]></category>
		<category><![CDATA[코테]]></category>
		<category><![CDATA[표 병합]]></category>
		<guid isPermaLink="false">https://lycos7560.com/?p=35409</guid>

					<description><![CDATA[<p>Programmers 150366 표 병합 문제에 대한 글입니다.  (This article is about the problem of Merge Tables Programmers Number 150366.) [2022 KAKAO BLIND RECRUITMENT]</p>
<p>The post <a href="https://lycos7560.com/cpp/programmers/programmers-150366-%ed%91%9c-%eb%b3%91%ed%95%a9-2022-kakao-blind-recruitment/35409/">Programmers 150366 표 병합 [2023 KAKAO BLIND RECRUITMENT]</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5698326622209671" crossorigin="anonymous"></script>
<!-- HorizontalAD -->
<ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-5698326622209671" data-ad-slot="6908948342" data-ad-format="auto" data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>


				<div class="wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-300073ee      "
					data-scroll= "1"
					data-offset= "30"
					style=""
				>
				<div class="uagb-toc__wrap">
						<div class="uagb-toc__title">
							목차 테이블						</div>
																						<div class="uagb-toc__list-wrap ">
						<ol class="uagb-toc__list"><li class="uagb-toc__list"><a href="#표-병합" class="uagb-toc-link__trigger">표 병합</a><ul class="uagb-toc__list"><li class="uagb-toc__list"><a href="#통과된-코드" class="uagb-toc-link__trigger">통과된 코드</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#추가-반례" class="uagb-toc-link__trigger">추가 반례</a></ul></ol>					</div>
									</div>
				</div>
			


<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h1 class="wp-block-heading">표 병합</h1>



<p class="has-medium-font-size"><a href="https://school.programmers.co.kr/learn/courses/30/lessons/150366" target="_blank" rel="noreferrer noopener">https://school.programmers.co.kr/learn/courses/30/lessons/150366</a></p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h5 class="wp-block-heading has-large-font-size">문제 설명</h5>



<p>당신은 표 편집 프로그램을 작성하고 있습니다.</p>



<p>표의 크기는 50 × 50으로 고정되어있고 초기에 모든 셀은 비어 있습니다.</p>



<p>각 셀은 문자열 값을 가질 수 있고, 다른 셀과 병합될 수 있습니다.</p>



<p>위에서&nbsp;<code>r</code>번째, 왼쪽에서&nbsp;<code>c</code>번째 위치를 (<code>r</code>,&nbsp;<code>c</code>)라고 표현할 때, 당신은 다음 명령어들에 대한 기능을 구현하려고 합니다.</p>



<ol class="wp-block-list">
<li><code>"UPDATE r c value"</code>
<ul class="wp-block-list">
<li>(<code>r</code>,&nbsp;<code>c</code>) 위치의 셀을 선택합니다.</li>



<li>선택한 셀의 값을&nbsp;<code>value</code>로 바꿉니다.</li>
</ul>
</li>



<li><code>"UPDATE value1 value2"</code>
<ul class="wp-block-list">
<li><code>value1</code>을 값으로 가지고 있는 모든 셀을 선택합니다.</li>



<li>선택한 셀의 값을&nbsp;<code>value2</code>로 바꿉니다.</li>
</ul>
</li>



<li><code>"MERGE r1 c1 r2 c2"</code>
<ul class="wp-block-list">
<li>(<code>r1</code>,&nbsp;<code>c1</code>) 위치의 셀과 (<code>r2</code>,&nbsp;<code>c2</code>) 위치의 셀을 선택하여 병합합니다.</li>



<li>선택한 두 위치의 셀이 같은 셀일 경우 무시합니다.</li>



<li>선택한 두 셀은 서로 인접하지 않을 수도 있습니다. 이 경우 (<code>r1</code>,&nbsp;<code>c1</code>) 위치의 셀과 (<code>r2</code>,&nbsp;<code>c2</code>) 위치의 셀만 영향을 받으며, <br>그 사이에 위치한 셀들은 영향을 받지 않습니다.</li>



<li>두 셀 중 한 셀이 값을 가지고 있을 경우 병합된 셀은 그 값을 가지게 됩니다.</li>



<li>두 셀 모두 값을 가지고 있을 경우 병합된 셀은 (<code>r1</code>,&nbsp;<code>c1</code>) 위치의 셀 값을 가지게 됩니다.</li>



<li>이후 (<code>r1</code>,&nbsp;<code>c1</code>) 와 (<code>r2</code>,&nbsp;<code>c2</code>) 중 어느 위치를 선택하여도 병합된 셀로 접근합니다.</li>
</ul>
</li>



<li><code>"UNMERGE r c"</code>
<ul class="wp-block-list">
<li>(<code>r</code>,&nbsp;<code>c</code>) 위치의 셀을 선택하여 해당 셀의 모든 병합을 해제합니다.</li>



<li>선택한 셀이 포함하고 있던 모든 셀은 프로그램 실행 초기의 상태로 돌아갑니다.</li>



<li>병합을 해제하기 전 셀이 값을 가지고 있었을 경우 (<code>r</code>,&nbsp;<code>c</code>) 위치의 셀이 그 값을 가지게 됩니다.</li>
</ul>
</li>



<li><code>"PRINT r c"</code>
<ul class="wp-block-list">
<li>(<code>r</code>,&nbsp;<code>c</code>) 위치의 셀을 선택하여 셀의 값을 출력합니다.</li>



<li>선택한 셀이 비어있을 경우&nbsp;<code>"EMPTY"</code>를 출력합니다.</li>
</ul>
</li>
</ol>



<p>아래는&nbsp;<code>UPDATE</code>&nbsp;명령어를 실행하여 빈 셀에 값을 입력하는 예시입니다.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">commands</th><th class="has-text-align-left" data-align="left">효과</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left">UPDATE 1 1 menu</td><td class="has-text-align-left" data-align="left">(1,1)에&nbsp;<code>"menu"</code>&nbsp;입력</td></tr><tr><td class="has-text-align-left" data-align="left">UPDATE 1 2 category</td><td class="has-text-align-left" data-align="left">(1,2)에&nbsp;<code>"category"</code>&nbsp;입력</td></tr><tr><td class="has-text-align-left" data-align="left">UPDATE 2 1 bibimbap</td><td class="has-text-align-left" data-align="left">(2,1)에&nbsp;<code>"bibimbap"</code>&nbsp;입력</td></tr><tr><td class="has-text-align-left" data-align="left">UPDATE 2 2 korean</td><td class="has-text-align-left" data-align="left">(2,2)에&nbsp;<code>"korean"</code>&nbsp;입력</td></tr><tr><td class="has-text-align-left" data-align="left">UPDATE 2 3 rice</td><td class="has-text-align-left" data-align="left">(2,3)에&nbsp;<code>"rice"</code>&nbsp;입력</td></tr><tr><td class="has-text-align-left" data-align="left">UPDATE 3 1 ramyeon</td><td class="has-text-align-left" data-align="left">(3,1)에&nbsp;<code>"ramyeon"</code>&nbsp;입력</td></tr><tr><td class="has-text-align-left" data-align="left">UPDATE 3 2 korean</td><td class="has-text-align-left" data-align="left">(3,2)에&nbsp;<code>"korean"</code>&nbsp;입력</td></tr><tr><td class="has-text-align-left" data-align="left">UPDATE 3 3 noodle</td><td class="has-text-align-left" data-align="left">(3,3)에&nbsp;<code>"noodle"</code>&nbsp;입력</td></tr><tr><td class="has-text-align-left" data-align="left">UPDATE 3 4 instant</td><td class="has-text-align-left" data-align="left">(3,4)에&nbsp;<code>"instant"</code>&nbsp;입력</td></tr><tr><td class="has-text-align-left" data-align="left">UPDATE 4 1 pasta</td><td class="has-text-align-left" data-align="left">(4,1)에&nbsp;<code>"pasta"</code>&nbsp;입력</td></tr><tr><td class="has-text-align-left" data-align="left">UPDATE 4 2 italian</td><td class="has-text-align-left" data-align="left">(4,2)에&nbsp;<code>"italian"</code>&nbsp;입력</td></tr><tr><td class="has-text-align-left" data-align="left">UPDATE 4 3 noodle</td><td class="has-text-align-left" data-align="left">(4,3)에&nbsp;<code>"noodle"</code>&nbsp;입력</td></tr></tbody></table></figure>



<p>위 명령어를 실행하면 아래 그림과 같은 상태가 됩니다.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="960" height="471" src="https://lycos7560.com/wp-content/uploads/2023/06/image-18.png" alt="" class="wp-image-35410" srcset="https://lycos7560.com/wp-content/uploads/2023/06/image-18.png 960w, https://lycos7560.com/wp-content/uploads/2023/06/image-18-300x147.png 300w, https://lycos7560.com/wp-content/uploads/2023/06/image-18-768x377.png 768w" sizes="(max-width: 960px) 100vw, 960px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p>아래는&nbsp;<code>MERGE</code>&nbsp;명령어를 실행하여 셀을 병합하는 예시입니다.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">commands</th><th class="has-text-align-left" data-align="left">효과</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left">MERGE 1 2 1 3</td><td class="has-text-align-left" data-align="left">(1,2)와 (1,3) 병합</td></tr><tr><td class="has-text-align-left" data-align="left">MERGE 1 3 1 4</td><td class="has-text-align-left" data-align="left">(1,3)과 (1,4) 병합</td></tr></tbody></table></figure>



<p>위 명령어를 실행하면 아래와 같은 상태가 됩니다.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="959" height="471" src="https://lycos7560.com/wp-content/uploads/2023/06/image-19.png" alt="" class="wp-image-35411" srcset="https://lycos7560.com/wp-content/uploads/2023/06/image-19.png 959w, https://lycos7560.com/wp-content/uploads/2023/06/image-19-300x147.png 300w, https://lycos7560.com/wp-content/uploads/2023/06/image-19-768x377.png 768w" sizes="(max-width: 959px) 100vw, 959px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<p>병합한 셀은&nbsp;<code>"category"</code>&nbsp;값을 가지게 되며 (1,2), (1,3), (1,4) 중 어느 위치를 선택하더라도 접근할 수 있습니다.</p>



<p>아래는&nbsp;<code>UPDATE</code>&nbsp;명령어를 실행하여 셀의 값을 변경하는 예시입니다.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">commands</th><th class="has-text-align-left" data-align="left">효과</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left">UPDATE korean hansik</td><td class="has-text-align-left" data-align="left"><code>"korean"</code>을&nbsp;<code>"hansik"</code>으로 변경</td></tr><tr><td class="has-text-align-left" data-align="left">UPDATE 1 3 group</td><td class="has-text-align-left" data-align="left">(1,3) 위치의 셀 값을&nbsp;<code>"group"</code>으로 변경</td></tr></tbody></table></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p>위 명령어를 실행하면 아래와 같은 상태가 됩니다.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="961" height="472" src="https://lycos7560.com/wp-content/uploads/2023/06/image-20.png" alt="" class="wp-image-35412" srcset="https://lycos7560.com/wp-content/uploads/2023/06/image-20.png 961w, https://lycos7560.com/wp-content/uploads/2023/06/image-20-300x147.png 300w, https://lycos7560.com/wp-content/uploads/2023/06/image-20-768x377.png 768w" sizes="(max-width: 961px) 100vw, 961px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p>아래는&nbsp;<code>UNMERGE</code>&nbsp;명령어를 실행하여 셀의 병합을 해제하는 예시입니다.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-table"><table><thead><tr><th class="has-text-align-left" data-align="left">commands</th><th class="has-text-align-left" data-align="left">효과</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left">UNMERGE 1 4</td><td class="has-text-align-left" data-align="left">셀 병합 해제 후 원래 값은 (1,4)가 가짐</td></tr></tbody></table></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p>위 명령어를 실행하면 아래와 같은 상태가 됩니다.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="959" height="471" src="https://lycos7560.com/wp-content/uploads/2023/06/image-21.png" alt="" class="wp-image-35413" srcset="https://lycos7560.com/wp-content/uploads/2023/06/image-21.png 959w, https://lycos7560.com/wp-content/uploads/2023/06/image-21-300x147.png 300w, https://lycos7560.com/wp-content/uploads/2023/06/image-21-768x377.png 768w" sizes="(max-width: 959px) 100vw, 959px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p>실행할 명령어들이 담긴 1차원 문자열 배열&nbsp;<code>commands</code>가 매개변수로 주어집니다.&nbsp;<code>commands</code>의 명령어들을 순서대로 실행하였을 때,&nbsp;</p>



<p><code>"PRINT r c"</code>&nbsp;명령어에 대한 실행결과를 순서대로 1차원 문자열 배열에 담아 return 하도록 solution 함수를 완성해주세요.</p>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--80);margin-bottom:var(--wp--preset--spacing--80)"/>



<h5 class="wp-block-heading has-large-font-size">제한사항</h5>



<ul class="wp-block-list">
<li>1 ≤&nbsp;<code>commands</code>의 길이 ≤ 1,000</li>



<li><code>commands</code>의 각 원소는 아래 5가지 형태 중 하나입니다.
<ol class="wp-block-list">
<li><code>"UPDATE r c value"</code>
<ul class="wp-block-list">
<li><code>r</code>,&nbsp;<code>c</code>는 선택할 셀의 위치를 나타내며, 1~50 사이의 정수입니다.</li>



<li><code>value</code>는 셀에 입력할 내용을 나타내며, 알파벳 소문자와 숫자로 구성된 길이 1~10 사이인 문자열입니다.</li>
</ul>
</li>



<li><code>"UPDATE value1 value2"</code>
<ul class="wp-block-list">
<li><code>value1</code>은 선택할 셀의 값,&nbsp;<code>value2</code>는 셀에 입력할 내용을 나타내며, 알파벳 소문자와 숫자로 구성된 길이 1~10 사이인 문자열입니다.</li>
</ul>
</li>



<li><code>"MERGE r1 c1 r2 c2"</code>
<ul class="wp-block-list">
<li><code>r1</code>,&nbsp;<code>c1</code>,&nbsp;<code>r2</code>,&nbsp;<code>c2</code>는 선택할 셀의 위치를 나타내며, 1~50 사이의 정수입니다.</li>
</ul>
</li>



<li><code>"UNMERGE r c"</code>
<ul class="wp-block-list">
<li><code>r</code>,&nbsp;<code>c</code>는 선택할 셀의 위치를 나타내며, 1~50 사이의 정수입니다.</li>
</ul>
</li>



<li><code>"PRINT r c"</code>
<ul class="wp-block-list">
<li><code>r</code>,&nbsp;<code>c</code>는 선택할 셀의 위치를 나타내며, 1~50 사이의 정수입니다.</li>
</ul>
</li>
</ol>
</li>



<li><code>commands</code>는 1개 이상의&nbsp;<code>"PRINT r c"</code>&nbsp;명령어를 포함하고 있습니다.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--80);margin-bottom:var(--wp--preset--spacing--80)"/>



<h5 class="wp-block-heading has-large-font-size">입출력 예</h5>



<figure class="wp-block-table"><table><thead><tr><th class="has-text-align-left" data-align="left">commands</th><th>result</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left"><code>["UPDATE 1 1 menu", "UPDATE 1 2 category", "UPDATE 2 1 bibimbap", "UPDATE 2 2 korean", "UPDATE 2 3 rice", "UPDATE 3 1 ramyeon", "UPDATE 3 2 korean", "UPDATE 3 3 noodle", "UPDATE 3 4 instant", "UPDATE 4 1 pasta", "UPDATE 4 2 italian", "UPDATE 4 3 noodle", "MERGE 1 2 1 3", "MERGE 1 3 1 4", "UPDATE korean hansik", "UPDATE 1 3 group", "UNMERGE 1 4", "PRINT 1 3", "PRINT 1 4"]</code></td><td><code>["EMPTY", "group"]</code></td></tr><tr><td class="has-text-align-left" data-align="left"><code>["UPDATE 1 1 a", "UPDATE 1 2 b", "UPDATE 2 1 c", "UPDATE 2 2 d", "MERGE 1 1 1 2", "MERGE 2 2 2 1", "MERGE 2 1 1 1", "PRINT 1 1", "UNMERGE 2 2", "PRINT 1 1"]</code></td><td><code>["d", "EMPTY"]</code></td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--80);margin-bottom:var(--wp--preset--spacing--80)"/>



<h5 class="wp-block-heading has-large-font-size">입출력 예 설명</h5>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size"><strong>입출력 예 #1</strong></p>



<ul class="wp-block-list">
<li>문제 예시와 같습니다. (1,3) 위치의 셀은 비어있고 (1,4) 위치의 셀 값은&nbsp;<code>"group"</code>입니다. <br>따라서&nbsp;<code>["EMPTY", "group"]</code>을 return 해야 합니다.</li>
</ul>



<p class="has-medium-font-size"><strong>입출력 예 #2</strong></p>



<ul class="wp-block-list">
<li>모든&nbsp;<code>UPDATE</code>&nbsp;명령어를 실행하면 아래와 같은 상태가 됩니다.</li>
</ul>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="639" height="347" src="https://lycos7560.com/wp-content/uploads/2023/06/image-22.png" alt="" class="wp-image-35415" srcset="https://lycos7560.com/wp-content/uploads/2023/06/image-22.png 639w, https://lycos7560.com/wp-content/uploads/2023/06/image-22-300x163.png 300w" sizes="(max-width: 639px) 100vw, 639px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><code>"MERGE 1 1 1 2"</code>&nbsp;명령어를 실행하면 아래와 같은 상태가 됩니다.</li>
</ul>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="640" height="350" src="https://lycos7560.com/wp-content/uploads/2023/06/image-23.png" alt="" class="wp-image-35416" srcset="https://lycos7560.com/wp-content/uploads/2023/06/image-23.png 640w, https://lycos7560.com/wp-content/uploads/2023/06/image-23-300x164.png 300w" sizes="(max-width: 640px) 100vw, 640px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><code>"MERGE 2 2 2 1"</code>&nbsp;명령어를 실행하면 아래와 같은 상태가 됩니다.</li>
</ul>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="642" height="347" src="https://lycos7560.com/wp-content/uploads/2023/06/image-24.png" alt="" class="wp-image-35417" srcset="https://lycos7560.com/wp-content/uploads/2023/06/image-24.png 642w, https://lycos7560.com/wp-content/uploads/2023/06/image-24-300x162.png 300w" sizes="(max-width: 642px) 100vw, 642px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><code>"MERGE 2 1 1 1"</code>&nbsp;명령어를 실행하면 아래와 같은 상태가 됩니다.</li>
</ul>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="642" height="348" src="https://lycos7560.com/wp-content/uploads/2023/06/image-25.png" alt="" class="wp-image-35418" srcset="https://lycos7560.com/wp-content/uploads/2023/06/image-25.png 642w, https://lycos7560.com/wp-content/uploads/2023/06/image-25-300x163.png 300w" sizes="(max-width: 642px) 100vw, 642px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><code>"UNMERGE 2 2"</code>&nbsp;명령어를 실행하면 아래와 같은 상태가 됩니다.</li>
</ul>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="641" height="348" src="https://lycos7560.com/wp-content/uploads/2023/06/image-26.png" alt="" class="wp-image-35419" srcset="https://lycos7560.com/wp-content/uploads/2023/06/image-26.png 641w, https://lycos7560.com/wp-content/uploads/2023/06/image-26-300x163.png 300w" sizes="(max-width: 641px) 100vw, 641px" /></figure>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--80);margin-bottom:var(--wp--preset--spacing--80)"/>



<h2 class="wp-block-heading">통과된 코드</h2>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<pre class="EnlighterJSRAW" data-enlighter-language="cpp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">#include &lt;string>
#include &lt;vector>
#include &lt;sstream>
#include &lt;cstdlib>
#include &lt;map>

using namespace std;

string _StrArr[51][51];
string* _PtrArr[51][51];
pair&lt;int, int> _MergeArr[51][51];
map&lt;pair&lt;int, int>, vector&lt;pair&lt;int, int>>> _MergeMap;
vector&lt;string> _Answer;

void CommandProcessing(string&amp; _command)
{
	istringstream iss(_command);
	string buffer;
	vector&lt;string> res;
	while (getline(iss, buffer, ' '))
		res.push_back(buffer);

	if (res[0] == "UPDATE") {
		if (res.size() > 3) {  // "UPDATE r c value"
			pair&lt;int, int> _MPair = _MergeArr[atoi(res[1].c_str())][atoi(res[2].c_str())];
			*_PtrArr[_MPair.first][_MPair.second] = res[3];
		}
		else {	// "UPDATE value1 value2"
			for (int i = 1; i &lt;= 50; i++)
				for (int j = 1; j &lt;= 50; j++) {
					if (_StrArr[i][j] == "" || _StrArr[i][j] != res[1])
						continue;
					_StrArr[i][j] = res[2];
				}
		}
	}
	else if (res[0] == "MERGE") { // "UNMERGE r c"
		// 같은 좌표일 경우 넘어간다.
		if (res[1] == res[3] &amp;&amp; res[2] == res[4])
			return;

		pair&lt;int, int> _MPair = _MergeArr[atoi(res[1].c_str())][atoi(res[2].c_str())];
		pair&lt;int, int> _TPair = _MergeArr[atoi(res[3].c_str())][atoi(res[4].c_str())];

		// 같은 좌표를 가르키고 있으면 넘어간다.
		if (_MPair == _TPair) 
			return;

		auto _Main = _MergeMap.find(_MPair);
		auto _Target = _MergeMap.find(_TPair);
		if (_Main == _MergeMap.end()) {
			vector&lt;pair&lt;int, int>> _Temp;
			_MergeMap.insert({ _MPair, _Temp });
			_Main = _MergeMap.find(_MPair);
		}

		_Main->second.push_back(_TPair);

		if (*_PtrArr[_MPair.first][_MPair.second] == "" &amp;&amp; *_PtrArr[_TPair.first][_TPair.second] != "") {
			*_PtrArr[_MPair.first][_MPair.second] = "";
			_PtrArr[_MPair.first][_MPair.second] = _PtrArr[_TPair.first][_TPair.second];
			for (auto&amp; it : _Main->second)
				_PtrArr[it.first][it.second] = _PtrArr[_TPair.first][_TPair.second];
		}

		_PtrArr[_TPair.first][_TPair.second] = _PtrArr[_MPair.first][_MPair.second];
		_MergeArr[_TPair.first][_TPair.second] = _MPair;

		if (_Target != _MergeMap.end()) {
			for (auto&amp; it : _Target->second) {
				_Main->second.push_back(it);
				_MergeArr[it.first][it.second] = _MPair;
				_PtrArr[it.first][it.second] = _PtrArr[_MPair.first][_MPair.second];
			}
			_MergeMap.erase(_Target);
		}
	}
	else if (res[0] == "UNMERGE") { // "UNMERGE r c"
		pair&lt;int, int> _MPair = _MergeArr[atoi(res[1].c_str())][atoi(res[2].c_str())];
		string str = *_PtrArr[_MPair.first][_MPair.second];
		_MergeArr[_MPair.first][_MPair.second] = _MPair;
		_PtrArr[_MPair.first][_MPair.second] = &amp;_StrArr[_MPair.first][_MPair.second];
		*_PtrArr[_MPair.first][_MPair.second] = "";

		auto _Main = _MergeMap.find(_MPair);
		if (_Main != _MergeMap.end()) {
			for (auto&amp; it : _Main->second) {
				_MergeArr[it.first][it.second] = make_pair(it.first, it.second);
				_PtrArr[it.first][it.second] = &amp;_StrArr[it.first][it.second];
				*_PtrArr[it.first][it.second] = "";
			}
			_MergeMap.erase(_Main);
		}
		_StrArr[atoi(res[1].c_str())][atoi(res[2].c_str())] = str;
	}
	else {// "PRINT r c"
		pair&lt;int, int> _MPair = _MergeArr[atoi(res[1].c_str())][atoi(res[2].c_str())];
		string str = *_PtrArr[_MPair.first][_MPair.second];
		if (str == "") _Answer.push_back("EMPTY");
		else _Answer.push_back(str);
	}
}


vector&lt;string> solution(vector&lt;string> commands) {
	// 포인터 배열 초기화
	for (int i = 1; i &lt;= 50; i++)
		for (int j = 1; j &lt;= 50; j++) {
			_PtrArr[i][j] = &amp;_StrArr[i][j];
			_MergeArr[i][j] = make_pair(i, j);
			_StrArr[i][j] = "";
		}

	// 명령어 처리
	for (auto&amp; it : commands)
		CommandProcessing(it);
	
	return _Answer;
}</pre>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">추가 반례</h2>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 입력 1</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">["UPDATE 1 1 menu", "MERGE 1 1 1 2", "MERGE 1 1 1 3", "MERGE 1 1 1 4", "MERGE 1 2 1 3", "UPDATE 1 1 hansik", "PRINT 1 1", "PRINT 1 2", "PRINT 1 3", "PRINT 1 4"]</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 출력 1</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">["hansik", "hansik", "hansik", "hansik"]</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 입력 2</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">["MERGE 1 1 2 2", "UPDATE 1 1 A", "UNMERGE 1 1", "PRINT 1 1", "PRINT 2 2"]</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 출력 2</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">["A", "EMPTY"]</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 입력 3</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">["UPDATE 1 1 A", "UPDATE 2 2 B", "UPDATE 3 3 C", "UPDATE 4 4 D", "MERGE 1 1 2 2", "MERGE 3 3 4 4", "MERGE 1 1 4 4", "UNMERGE 3 3", "PRINT 1 1", "PRINT 2 2", "PRINT 3 3", "PRINT 4 4"]</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 출력 3</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">["EMPTY", "EMPTY", "A", "EMPTY"]</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 입력 4</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">["UPDATE 1 1 1", "UPDATE 1 2 2", "UPDATE 2 1 3", "UPDATE 2 2 4", "MERGE 1 1 1 2", "MERGE 2 2 2 1", "MERGE 2 1 1 1", "PRINT 1 1", "UNMERGE 2 2", "PRINT 1 1"]</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예제 출력 4</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">["4", "EMPTY"]</pre>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5698326622209671" crossorigin="anonymous"></script>
<ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5698326622209671" data-ad-slot="4245812909"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<p></p>
<p>The post <a href="https://lycos7560.com/cpp/programmers/programmers-150366-%ed%91%9c-%eb%b3%91%ed%95%a9-2022-kakao-blind-recruitment/35409/">Programmers 150366 표 병합 [2023 KAKAO BLIND RECRUITMENT]</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lycos7560.com/cpp/programmers/programmers-150366-%ed%91%9c-%eb%b3%91%ed%95%a9-2022-kakao-blind-recruitment/35409/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>백준 10830번 (행렬 제곱, C++) [BAEKJOON]</title>
		<link>https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-10830%eb%b2%88-%ed%96%89%eb%a0%ac-%ec%a0%9c%ea%b3%b1-c-baekjoon/34558/</link>
					<comments>https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-10830%eb%b2%88-%ed%96%89%eb%a0%ac-%ec%a0%9c%ea%b3%b1-c-baekjoon/34558/#respond</comments>
		
		<dc:creator><![CDATA[lycos7560]]></dc:creator>
		<pubDate>Wed, 10 May 2023 00:05:02 +0000</pubDate>
				<category><![CDATA[BaekjoonOnlineJudge]]></category>
		<category><![CDATA[C++/CPP]]></category>
		<category><![CDATA[10830]]></category>
		<category><![CDATA[10830번]]></category>
		<category><![CDATA[Baekjoon]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[cpp]]></category>
		<category><![CDATA[Matrix]]></category>
		<category><![CDATA[mod]]></category>
		<category><![CDATA[study]]></category>
		<category><![CDATA[공부]]></category>
		<category><![CDATA[기초]]></category>
		<category><![CDATA[모듈러 산술]]></category>
		<category><![CDATA[백준]]></category>
		<category><![CDATA[백준 10830]]></category>
		<category><![CDATA[백준 10830번]]></category>
		<category><![CDATA[분할]]></category>
		<category><![CDATA[분할 정복]]></category>
		<category><![CDATA[분할정복]]></category>
		<category><![CDATA[선형대수학]]></category>
		<category><![CDATA[수학]]></category>
		<category><![CDATA[알고리즘]]></category>
		<category><![CDATA[추가 반례]]></category>
		<category><![CDATA[추가 예제]]></category>
		<category><![CDATA[추가반례]]></category>
		<category><![CDATA[추가예제]]></category>
		<category><![CDATA[코딩테스트]]></category>
		<category><![CDATA[코테]]></category>
		<category><![CDATA[행렬]]></category>
		<category><![CDATA[행렬 제곱]]></category>
		<guid isPermaLink="false">https://lycos7560.com/?p=34558</guid>

					<description><![CDATA[<p>백준 10830번 '행렬 제곱' 문제에 대한 글입니다. (This article is about Baekjoon Number 10830 'matrix square' problem.)</p>
<p>The post <a href="https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-10830%eb%b2%88-%ed%96%89%eb%a0%ac-%ec%a0%9c%ea%b3%b1-c-baekjoon/34558/">백준 10830번 (행렬 제곱, C++) [BAEKJOON]</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5698326622209671" crossorigin="anonymous"></script>
<!-- HorizontalAD -->
<ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-5698326622209671" data-ad-slot="6908948342" data-ad-format="auto" data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<div style="height:62px" aria-hidden="true" class="wp-block-spacer"></div>


				<div class="wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-7e3e2de1      "
					data-scroll= "1"
					data-offset= "30"
					style=""
				>
				<div class="uagb-toc__wrap">
						<div class="uagb-toc__title">
							목차 테이블						</div>
																						<div class="uagb-toc__list-wrap ">
						<ol class="uagb-toc__list"><li class="uagb-toc__list"><a href="#행렬-제곱" class="uagb-toc-link__trigger">행렬 제곱</a><li class="uagb-toc__list"><a href="#추가-반례" class="uagb-toc-link__trigger">추가 반례</a><li class="uagb-toc__list"><a href="#통과된-코드" class="uagb-toc-link__trigger">통과된 코드</a></ol>					</div>
									</div>
				</div>
			


<div style="height:62px" aria-hidden="true" class="wp-block-spacer"></div>



<h1 class="wp-block-heading">행렬 제곱</h1>



<p class="has-medium-font-size"><a href="https://www.acmicpc.net/problem/10830" target="_blank" rel="noreferrer noopener">https://www.acmicpc.net/problem/10830</a></p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">시간 제한</th><th class="has-text-align-left" data-align="left">메모리 제한</th><th class="has-text-align-left" data-align="left">제출</th><th class="has-text-align-left" data-align="left">정답</th><th class="has-text-align-left" data-align="left">맞힌 사람</th><th class="has-text-align-left" data-align="left">정답 비율</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left">1 초</td><td class="has-text-align-left" data-align="left">256 MB</td><td class="has-text-align-left" data-align="left">29759</td><td class="has-text-align-left" data-align="left">10520</td><td class="has-text-align-left" data-align="left">8339</td><td class="has-text-align-left" data-align="left">34.120%</td></tr></tbody></table></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">문제</h2>



<p class="has-medium-font-size">크기가 N*N인 행렬 A가 주어진다. </p>



<p class="has-medium-font-size">이때, A의 B제곱을 구하는 프로그램을 작성하시오. </p>



<p class="has-medium-font-size">수가 매우 커질 수 있으니, A^B의 각 원소를 1,000으로 나눈 나머지를 출력한다.</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">입력</h2>



<p class="has-medium-font-size">첫째 줄에 행렬의 크기 N과 B가 주어진다. </p>



<p class="has-medium-font-size">(2&nbsp;≤ N ≤ &nbsp;5, 1 ≤ B ≤ 100,000,000,000)</p>



<p class="has-medium-font-size">둘째 줄부터 N개의 줄에 행렬의 각 원소가&nbsp;주어진다. </p>



<p class="has-medium-font-size">행렬의 각 원소는 1,000보다 작거나 같은&nbsp;자연수 또는 0이다.</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">출력</h2>



<p class="has-medium-font-size">첫째 줄부터 N개의 줄에 걸쳐 행렬 A를 B제곱한 결과를 출력한다.</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 입력 1</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">2 5
1 2
3 4</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 출력 1</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">69 558
337 406</pre>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 입력 2</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">3 3
1 2 3
4 5 6
7 8 9</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 출력 2</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">468 576 684
62 305 548
656 34 412</pre>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 입력 3</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">5 10
1 0 0 0 1
1 0 0 0 1
1 0 0 0 1
1 0 0 0 1
1 0 0 0 1</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 출력 3</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">512 0 0 0 512
512 0 0 0 512
512 0 0 0 512
512 0 0 0 512
512 0 0 0 512</pre>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h1 class="wp-block-heading">추가 반례</h1>



<p class="has-medium-font-size"><a href="https://www.acmicpc.net/board/search/all/problem/10830" target="_blank" rel="noreferrer noopener">https://www.acmicpc.net/board/search/all/problem/10830</a></p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 입력 A</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">2 1
1000 1000
1000 1000</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 출력 A</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">0 0
0 0</pre>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 입력 B</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">2 100000000000
999 998
997 996</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 출력 B</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">751 250
875 626</pre>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">출처</h2>



<ul class="wp-block-list">
<li>문제를 만든 사람:&nbsp;<a href="https://www.acmicpc.net/user/baekjoon" target="_blank" rel="noreferrer noopener">baekjoon</a></li>



<li>데이터를 추가한 사람:&nbsp;<a href="https://www.acmicpc.net/user/doju" target="_blank" rel="noreferrer noopener">doju</a></li>



<li>잘못된 조건을 찾은 사람:&nbsp;<a href="https://www.acmicpc.net/user/dreammusic23" target="_blank" rel="noreferrer noopener">dreammusic23</a></li>
</ul>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">알고리즘 분류</h2>



<ul class="wp-block-list">
<li><a href="https://www.acmicpc.net/problem/tag/124" target="_blank" rel="noreferrer noopener">수학</a></li>



<li><a href="https://www.acmicpc.net/problem/tag/24" target="_blank" rel="noreferrer noopener">분할 정복</a></li>



<li><a href="https://www.acmicpc.net/problem/tag/39" target="_blank" rel="noreferrer noopener">분할 정복을 이용한 거듭제곱</a></li>



<li><a href="https://www.acmicpc.net/problem/tag/144" target="_blank" rel="noreferrer noopener">선형대수학</a></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--80);margin-bottom:var(--wp--preset--spacing--80)"/>



<figure class="wp-block-image size-full"><img decoding="async" width="1037" height="247" src="https://lycos7560.com/wp-content/uploads/2023/05/image-16.png" alt="" class="wp-image-34562" srcset="https://lycos7560.com/wp-content/uploads/2023/05/image-16.png 1037w, https://lycos7560.com/wp-content/uploads/2023/05/image-16-300x71.png 300w, https://lycos7560.com/wp-content/uploads/2023/05/image-16-768x183.png 768w" sizes="(max-width: 1037px) 100vw, 1037px" /></figure>



<div style="height:42px" aria-hidden="true" class="wp-block-spacer"></div>



<h1 class="wp-block-heading">통과된 코드</h1>



<p class="has-medium-font-size">입력 받는 B 값이 int의 범위를 벗어나는 경우를 조심</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="736" height="542" src="https://lycos7560.com/wp-content/uploads/2023/05/image-18.png" alt="" class="wp-image-34566" srcset="https://lycos7560.com/wp-content/uploads/2023/05/image-18.png 736w, https://lycos7560.com/wp-content/uploads/2023/05/image-18-300x221.png 300w" sizes="(max-width: 736px) 100vw, 736px" /></figure>



<p class="has-medium-font-size">행렬을 B만큼 곱하는 연산을 할 필요가 없이 효율적으로 처리</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<pre class="EnlighterJSRAW" data-enlighter-language="cpp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">#include &lt;iostream>
#include &lt;vector>
#include &lt;algorithm>

using namespace std;

// 새로운 데이터 유형을 정의
typedef vector&lt;vector&lt;unsigned long long int>> Matrix;

long long int _N, _B;
constexpr int MOD = 1000;

// 행렬 제곱 계산
Matrix MatrixMultiply(Matrix&amp; A, Matrix&amp; B) {

    int _Size = A.size();

    Matrix _Temp(_Size, vector&lt;unsigned long long int>(_Size));

    for (int i = 0; i &lt; _Size; i++) {
        for (int j = 0; j &lt; _Size; j++) {

            unsigned long long int _Sum = 0;

            for (int k = 0; k &lt; _Size; k++) // 모듈러 연산
                _Sum += ((A[i][k] % MOD) * (B[k][j] % MOD)) % MOD;
            _Temp[i][j] = _Sum % MOD;
        }
    }
    return _Temp;
}

// 행렬을 제곱합니다.
Matrix MatrixPow(Matrix&amp; p_Matrix, unsigned long long int p_Cnt) {

    long long int _Size = p_Matrix.size();

    Matrix _Res(_Size, vector&lt;unsigned long long int>(_Size));

    // 항등 행렬로 초기화 => _Res는 거듭제곱의 곱을 누적하는 데 사용
    for (int i = 0; i &lt; _Size; i++) 
        _Res[i][i] = 1;
    
    while (p_Cnt > 0) {

        // 지수가 홀수인 경우 현재 _Res행렬과 입력 행렬을 곱하고 다시 할당
        if (p_Cnt % 2 == 1) _Res = MatrixMultiply(_Res, p_Matrix);       
        p_Matrix = MatrixMultiply(p_Matrix, p_Matrix); 
        p_Cnt /= 2;
        // p_Matrix => A
        // cnt = 4 >  A * A * A * A
        // cnt = 2 > (A * A) * (A * A)
        // cnt = 1 > ((A * A) * (A * A))
    }
    return _Res;
}

int main()
{
    cin >> _N >> _B;

    // 동적으로 행렬 생성
    Matrix _Matrix(_N, vector&lt;unsigned long long int>(_N));

    for (int i = 0; i &lt; _N; i++) {
        for (int j = 0; j &lt; _N; j++) 
            cin >> _Matrix[i][j];       
    }

    // 제곱 시작
    Matrix C = MatrixPow(_Matrix, _B);

    for (int i = 0; i &lt; _N; i++) {
        for (int j = 0; j &lt; _N; j++)
            cout &lt;&lt; C[i][j] &lt;&lt; " ";
        cout &lt;&lt; "\n";
    }

    return 0;
}</pre>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://lycos7560.com/wp-content/uploads/2023/05/image-17.png" alt="" class="wp-image-34564" width="1012" height="94" srcset="https://lycos7560.com/wp-content/uploads/2023/05/image-17.png 833w, https://lycos7560.com/wp-content/uploads/2023/05/image-17-300x28.png 300w, https://lycos7560.com/wp-content/uploads/2023/05/image-17-768x71.png 768w" sizes="(max-width: 1012px) 100vw, 1012px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">수학은 너무 어려운 것 같다.</p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5698326622209671" crossorigin="anonymous"></script>
<ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5698326622209671" data-ad-slot="4245812909"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>
<p>The post <a href="https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-10830%eb%b2%88-%ed%96%89%eb%a0%ac-%ec%a0%9c%ea%b3%b1-c-baekjoon/34558/">백준 10830번 (행렬 제곱, C++) [BAEKJOON]</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-10830%eb%b2%88-%ed%96%89%eb%a0%ac-%ec%a0%9c%ea%b3%b1-c-baekjoon/34558/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>백준 2206번 (벽 부수고 이동하기, C++) [BAEKJOON]</title>
		<link>https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-2206%eb%b2%88-%eb%b2%bd-%eb%b6%80%ec%88%98%ea%b3%a0-%ec%9d%b4%eb%8f%99%ed%95%98%ea%b8%b0-c-baekjoon/34493/</link>
					<comments>https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-2206%eb%b2%88-%eb%b2%bd-%eb%b6%80%ec%88%98%ea%b3%a0-%ec%9d%b4%eb%8f%99%ed%95%98%ea%b8%b0-c-baekjoon/34493/#respond</comments>
		
		<dc:creator><![CDATA[lycos7560]]></dc:creator>
		<pubDate>Tue, 09 May 2023 12:25:05 +0000</pubDate>
				<category><![CDATA[BaekjoonOnlineJudge]]></category>
		<category><![CDATA[C++/CPP]]></category>
		<category><![CDATA[2206]]></category>
		<category><![CDATA[2206번]]></category>
		<category><![CDATA[Baekjoon]]></category>
		<category><![CDATA[BFS]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[cpp]]></category>
		<category><![CDATA[study]]></category>
		<category><![CDATA[공부]]></category>
		<category><![CDATA[그래프 이론]]></category>
		<category><![CDATA[그래프 탐색]]></category>
		<category><![CDATA[기초]]></category>
		<category><![CDATA[너비 우선 탐색]]></category>
		<category><![CDATA[백준]]></category>
		<category><![CDATA[백준 2206]]></category>
		<category><![CDATA[백준 2206번]]></category>
		<category><![CDATA[벽 부수고 이동하기]]></category>
		<category><![CDATA[알고리즘]]></category>
		<category><![CDATA[추가 반례]]></category>
		<category><![CDATA[추가 예제]]></category>
		<category><![CDATA[추가반례]]></category>
		<category><![CDATA[추가예제]]></category>
		<category><![CDATA[코딩테스트]]></category>
		<category><![CDATA[코테]]></category>
		<guid isPermaLink="false">https://lycos7560.com/?p=34493</guid>

					<description><![CDATA[<p>백준 2206번 '벽 부수고 이동하기' 문제에 대한 글입니다. BFS 탐색 알고리즘을 이용하여 해결하였습니다. (This article is about Baek Joon Number 2206 'Breaking the Wall and Moving'. It was solved using the BFS search algorithm)</p>
<p>The post <a href="https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-2206%eb%b2%88-%eb%b2%bd-%eb%b6%80%ec%88%98%ea%b3%a0-%ec%9d%b4%eb%8f%99%ed%95%98%ea%b8%b0-c-baekjoon/34493/">백준 2206번 (벽 부수고 이동하기, C++) [BAEKJOON]</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5698326622209671" crossorigin="anonymous"></script>
<!-- HorizontalAD -->
<ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-5698326622209671" data-ad-slot="6908948342" data-ad-format="auto" data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<div style="height:62px" aria-hidden="true" class="wp-block-spacer"></div>


				<div class="wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-19072a95      "
					data-scroll= "1"
					data-offset= "30"
					style=""
				>
				<div class="uagb-toc__wrap">
						<div class="uagb-toc__title">
							목차 테이블						</div>
																						<div class="uagb-toc__list-wrap ">
						<ol class="uagb-toc__list"><li class="uagb-toc__list"><a href="#벽-부수고-이동하기" class="uagb-toc-link__trigger">벽 부수고 이동하기</a><li class="uagb-toc__list"><a href="#추가-반례" class="uagb-toc-link__trigger">추가 반례</a><li class="uagb-toc__list"><a href="#통과된-코드" class="uagb-toc-link__trigger">통과된 코드</a></ol>					</div>
									</div>
				</div>
			


<div style="height:62px" aria-hidden="true" class="wp-block-spacer"></div>



<h1 class="wp-block-heading">벽 부수고 이동하기</h1>



<p class="has-medium-font-size"><a href="https://www.acmicpc.net/problem/2206" target="_blank" rel="noreferrer noopener">https://www.acmicpc.net/problem/2206</a></p>



<div style="height:62px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">시간 제한</th><th class="has-text-align-left" data-align="left">메모리 제한</th><th class="has-text-align-left" data-align="left">제출</th><th class="has-text-align-left" data-align="left">정답</th><th class="has-text-align-left" data-align="left">맞힌 사람</th><th class="has-text-align-left" data-align="left">정답 비율</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left">2 초</td><td class="has-text-align-left" data-align="left">192 MB</td><td class="has-text-align-left" data-align="left">114413</td><td class="has-text-align-left" data-align="left">29104</td><td class="has-text-align-left" data-align="left">18121</td><td class="has-text-align-left" data-align="left">22.850%</td></tr></tbody></table></figure>



<div style="height:62px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">문제</h2>



<p class="has-medium-font-size">N×M의 행렬로 표현되는 맵이 있다. </p>



<p class="has-medium-font-size">맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. </p>



<p class="has-medium-font-size">당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로로 이동하려 한다. </p>



<p class="has-medium-font-size">최단경로는 맵에서 가장 적은 개수의 칸을 지나는 경로를 말하는데, </p>



<p class="has-medium-font-size">이때 시작하는 칸과 끝나는 칸도 포함해서 센다.</p>



<p class="has-medium-font-size">만약에 이동하는 도중에 한 개의 벽을 부수고 이동하는 것이 좀 더 경로가 짧아진다면, </p>



<p class="has-medium-font-size">벽을 한 개 까지 부수고 이동하여도 된다.</p>



<p class="has-medium-font-size">한 칸에서 이동할 수 있는 칸은 상하좌우로 인접한 칸이다.</p>



<p class="has-medium-font-size">맵이 주어졌을 때, 최단 경로를 구해 내는 프로그램을 작성하시오.</p>



<div style="height:62px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">입력</h2>



<p class="has-medium-font-size">첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 1,000)이 주어진다. </p>



<p class="has-medium-font-size">다음 N개의 줄에 M개의 숫자로 맵이 주어진다. </p>



<p class="has-medium-font-size">(1, 1)과 (N, M)은 항상 0이라고 가정하자.</p>



<div style="height:62px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">출력</h2>



<p class="has-medium-font-size">첫째 줄에 최단 거리를 출력한다. 불가능할 때는 -1을 출력한다.</p>



<div style="height:62px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 입력 1</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">6 4
0100
1110
1000
0000
0111
0000</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 출력 1</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">15</pre>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 입력 2</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">4 4
0111
1111
1111
1110</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 출력 2</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">-1</pre>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h1 class="wp-block-heading">추가 반례</h1>



<p class="has-medium-font-size"><a href="https://www.acmicpc.net/board/search/all/problem/2206" target="_blank" rel="noreferrer noopener">https://www.acmicpc.net/board/search/all/problem/2206</a></p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 입력 A</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">2 4
0111
0010</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 출력 A</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">5</pre>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 입력 B</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">6 7
0000000
0111111
0100010
0101010
0101010
0001010</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 출력 B</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">12</pre>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 입력 C</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">1 1
0</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 출력 C</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">1</pre>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 입력 D</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">5 5
00000
11101
00001
01111
00010</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 출력 D</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">15</pre>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 입력 E</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">8 8
01000100
01010100
01010100
01010100
01010100
01010100
01010100
00010100</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 출력 E</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">29</pre>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 입력 F</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">10 2
01
00
10
00
01
00
10
00
01
00</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 출력 F</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">13</pre>



<div style="height:150px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">출처</h2>



<ul class="wp-block-list">
<li>데이터를 추가한 사람: <a href="https://www.acmicpc.net/user/djm03178" target="_blank" rel="noreferrer noopener">djm03178</a>, <a href="https://www.acmicpc.net/user/jh05013" target="_blank" rel="noreferrer noopener">jh05013</a>, <a href="https://www.acmicpc.net/user/Picasso" target="_blank" rel="noreferrer noopener">Picasso</a>, <a href="https://www.acmicpc.net/user/sait2000" target="_blank" rel="noreferrer noopener">sait2000</a>, <a href="https://www.acmicpc.net/user/YunGoon" target="_blank" rel="noreferrer noopener">YunGoon</a></li>



<li>문제의 오타를 찾은 사람: <a href="https://www.acmicpc.net/user/ntopia" target="_blank" rel="noreferrer noopener">ntopia</a></li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">알고리즘 분류</h2>



<ul class="wp-block-list">
<li><a href="https://www.acmicpc.net/problem/tag/7" target="_blank" rel="noreferrer noopener">그래프 이론</a></li>



<li><a href="https://www.acmicpc.net/problem/tag/11" target="_blank" rel="noreferrer noopener">그래프 탐색</a></li>



<li><a href="https://www.acmicpc.net/problem/tag/126" target="_blank" rel="noreferrer noopener">너비 우선 탐색</a></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--80);margin-bottom:var(--wp--preset--spacing--80)"/>



<h1 class="wp-block-heading">통과된 코드</h1>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://lycos7560.com/wp-content/uploads/2023/05/image-14.png" alt="" class="wp-image-34497" width="501" height="77" srcset="https://lycos7560.com/wp-content/uploads/2023/05/image-14.png 402w, https://lycos7560.com/wp-content/uploads/2023/05/image-14-300x46.png 300w" sizes="(max-width: 501px) 100vw, 501px" /></figure>



<p class="has-medium-font-size">탐색 중 벽을 파괴한 상태와 아닌 상태를 구분하여 방문 체크를 하는 것이 포인트</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<pre class="EnlighterJSRAW" data-enlighter-language="cpp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">#include &lt;iostream>
#include &lt;queue>
#include &lt;tuple>

using namespace std;

queue&lt;tuple&lt;int, int, int, bool>> _MyQueue;

int _N, _M, _MapArr[1001][1001];
int _DxDy[4][2] = { {-1, 0}, {1, 0}, {0, -1}, {0, 1} };
bool _IsVisted[1001][1001][2];
// 벽을 파괴한 상태와 아닌 상태를 구분

int main()
{
	int _Res = 0;
	cin >> _N >> _M;
	for (int i = 1; i &lt;= _N; i++) {
		string _Str;
		cin >> _Str;
		for (int j = 0; j &lt; _Str.length(); j++) {
			_MapArr[i][j + 1] = _Str[j] - '0';
		}
	}

	_MyQueue.push(make_tuple(1, 1, 1, false));
	_IsVisted[1][1][0] = true;
	while (!_MyQueue.empty()) {
		tuple&lt;int, int, int, bool> _NowT = _MyQueue.front();
		_MyQueue.pop();
		int _CntDx = get&lt;0>(_NowT);
		int _CntDy = get&lt;1>(_NowT);
		if (_CntDx == _N &amp;&amp; _CntDy == _M) {
			_Res = get&lt;2>(_NowT);
			while (!_MyQueue.empty()) _MyQueue.pop();
		}
		for (int i = 0; i &lt; 4; i++) {
			int _Dx = _CntDx + _DxDy[i][1];
			int _Dy = _CntDy + _DxDy[i][0];
			int _Cnt = get&lt;2>(_NowT);
			bool _Check = get&lt;3>(_NowT);
			// 범위를 벗어나거나 방문한 적이 있다면 넘어간다.
			if (_Dx > _N || _Dy > _M || _Dx &lt;= 0 || _Dy &lt;= 0 || _IsVisted[_Dx][_Dy][_Check]) continue;
			if (_MapArr[_Dx][_Dy]) { // 벽을 만남
				if (!_Check) { // 벽을 파괴한 적이 없다면 큐에 넣는다.
					_MyQueue.push(make_tuple(_Dx, _Dy, _Cnt + 1, !_Check));
					_IsVisted[_Dx][_Dy][_Check] = true;
				}
				continue;
			}

			_MyQueue.push(make_tuple(_Dx, _Dy, _Cnt + 1, _Check));
			_IsVisted[_Dx][_Dy][_Check] = true;
		}
	}
	if (_Res == 0) cout &lt;&lt; "-1";
	else cout &lt;&lt; _Res;
	return 0;
}</pre>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://lycos7560.com/wp-content/uploads/2023/05/image-13.png" alt="" class="wp-image-34495" width="989" height="136" srcset="https://lycos7560.com/wp-content/uploads/2023/05/image-13.png 828w, https://lycos7560.com/wp-content/uploads/2023/05/image-13-300x41.png 300w, https://lycos7560.com/wp-content/uploads/2023/05/image-13-768x106.png 768w" sizes="(max-width: 989px) 100vw, 989px" /></figure>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5698326622209671" crossorigin="anonymous"></script>
<ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5698326622209671" data-ad-slot="4245812909"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>
<p>The post <a href="https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-2206%eb%b2%88-%eb%b2%bd-%eb%b6%80%ec%88%98%ea%b3%a0-%ec%9d%b4%eb%8f%99%ed%95%98%ea%b8%b0-c-baekjoon/34493/">백준 2206번 (벽 부수고 이동하기, C++) [BAEKJOON]</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-2206%eb%b2%88-%eb%b2%bd-%eb%b6%80%ec%88%98%ea%b3%a0-%ec%9d%b4%eb%8f%99%ed%95%98%ea%b8%b0-c-baekjoon/34493/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>백준 9251번 (LCS, C++) [BAEKJOON]</title>
		<link>https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-9251%eb%b2%88-lcs-c-baekjoon/34481/</link>
					<comments>https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-9251%eb%b2%88-lcs-c-baekjoon/34481/#respond</comments>
		
		<dc:creator><![CDATA[lycos7560]]></dc:creator>
		<pubDate>Tue, 25 Apr 2023 21:56:53 +0000</pubDate>
				<category><![CDATA[BaekjoonOnlineJudge]]></category>
		<category><![CDATA[C++/CPP]]></category>
		<category><![CDATA[9251]]></category>
		<category><![CDATA[9251번]]></category>
		<category><![CDATA[Baekjoon]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[cpp]]></category>
		<category><![CDATA[DP]]></category>
		<category><![CDATA[DynamicProgramming]]></category>
		<category><![CDATA[LCS]]></category>
		<category><![CDATA[study]]></category>
		<category><![CDATA[공부]]></category>
		<category><![CDATA[기본]]></category>
		<category><![CDATA[기초]]></category>
		<category><![CDATA[다이나믹 프로그래밍]]></category>
		<category><![CDATA[문자열]]></category>
		<category><![CDATA[백준]]></category>
		<category><![CDATA[백준 9251]]></category>
		<category><![CDATA[백준 9251번]]></category>
		<category><![CDATA[알고리즘]]></category>
		<category><![CDATA[추가 반례]]></category>
		<category><![CDATA[추가 예제]]></category>
		<category><![CDATA[추가반례]]></category>
		<category><![CDATA[추가예제]]></category>
		<category><![CDATA[코딩테스트]]></category>
		<category><![CDATA[코테]]></category>
		<guid isPermaLink="false">https://lycos7560.com/?p=34481</guid>

					<description><![CDATA[<p>백준 9251번 'LCS' 문제에 대한 글입니다. (This is an article about the problem of "LCS" in Baekjoon<br />
 Number 9251)</p>
<p>The post <a href="https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-9251%eb%b2%88-lcs-c-baekjoon/34481/">백준 9251번 (LCS, C++) [BAEKJOON]</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5698326622209671" crossorigin="anonymous"></script>
<!-- HorizontalAD -->
<ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-5698326622209671" data-ad-slot="6908948342" data-ad-format="auto" data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<div style="height:62px" aria-hidden="true" class="wp-block-spacer"></div>


				<div class="wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-8a34d67c      "
					data-scroll= "1"
					data-offset= "30"
					style=""
				>
				<div class="uagb-toc__wrap">
						<div class="uagb-toc__title">
							목차 테이블						</div>
																						<div class="uagb-toc__list-wrap ">
						<ol class="uagb-toc__list"><li class="uagb-toc__list"><a href="#lcs" class="uagb-toc-link__trigger">LCS</a><li class="uagb-toc__list"><a href="#추가-반례" class="uagb-toc-link__trigger">추가 반례</a><li class="uagb-toc__list"><a href="#통과된-코드" class="uagb-toc-link__trigger">통과된 코드</a></ol>					</div>
									</div>
				</div>
			


<div style="height:62px" aria-hidden="true" class="wp-block-spacer"></div>



<h1 class="wp-block-heading">LCS</h1>



<p class="has-medium-font-size"><a href="https://www.acmicpc.net/problem/9251" target="_blank" rel="noreferrer noopener">https://www.acmicpc.net/problem/9251</a></p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">시간 제한</th><th class="has-text-align-left" data-align="left">메모리 제한</th><th class="has-text-align-left" data-align="left">제출</th><th class="has-text-align-left" data-align="left">정답</th><th class="has-text-align-left" data-align="left">맞힌 사람</th><th class="has-text-align-left" data-align="left">정답 비율</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left">0.1 초 (<a href="https://www.acmicpc.net/problem/9251#" target="_blank" rel="noreferrer noopener">하단 참고</a>)</td><td class="has-text-align-left" data-align="left">256 MB</td><td class="has-text-align-left" data-align="left">69404</td><td class="has-text-align-left" data-align="left">28234</td><td class="has-text-align-left" data-align="left">20700</td><td class="has-text-align-left" data-align="left">40.213%</td></tr></tbody></table></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">문제</h2>



<p class="has-medium-font-size">LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, </p>



<p class="has-medium-font-size">모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다.</p>



<p class="has-medium-font-size">예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다.</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">입력</h2>



<p class="has-medium-font-size">첫째 줄과 둘째 줄에 두 문자열이 주어진다. </p>



<p class="has-medium-font-size">문자열은 알파벳 대문자로만 이루어져 있으며, 최대 1000글자로 이루어져 있다.</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">출력</h2>



<p class="has-medium-font-size">첫째 줄에 입력으로 주어진 두 문자열의 LCS의 길이를 출력한다.</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 입력 1</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">ACAYKP
CAPCAK</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 출력 1</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">4</pre>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h1 class="wp-block-heading">추가 반례</h1>



<p class="has-medium-font-size"><a href="https://www.acmicpc.net/board/search/all/problem/9251/84485" target="_blank" rel="noreferrer noopener">https://www.acmicpc.net/board/search/all/problem/9251/84485</a></p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 입력 A</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">ACAA
AAACBA</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 출력 A</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">3</pre>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 입력 B</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">ABCDEFG
BCDEFGA</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 출력 B</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">6</pre>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 입력 C</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAA</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 출력 C</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">999</pre>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 입력 D</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">A
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 출력 D</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">1</pre>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">출처</h2>



<ul class="wp-block-list">
<li>문제를 만든 사람: <a href="https://www.acmicpc.net/user/baekjoon" target="_blank" rel="noreferrer noopener">baekjoon</a></li>



<li>데이터를 추가한 사람: <a href="https://www.acmicpc.net/user/bang627" target="_blank" rel="noreferrer noopener">bang627</a>, <a href="https://www.acmicpc.net/user/eric00513" target="_blank" rel="noreferrer noopener">eric00513</a>, <a href="https://www.acmicpc.net/user/qpwoeiruty" target="_blank" rel="noreferrer noopener">qpwoeiruty</a></li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">알고리즘 분류</h2>



<ul class="wp-block-list">
<li><a href="https://www.acmicpc.net/problem/tag/25" target="_blank" rel="noreferrer noopener">다이나믹 프로그래밍</a></li>



<li><a href="https://www.acmicpc.net/problem/tag/158" target="_blank" rel="noreferrer noopener">문자열</a></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--80);margin-bottom:var(--wp--preset--spacing--80)"/>



<h1 class="wp-block-heading">통과된 코드</h1>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="756" height="1920" src="https://lycos7560.com/wp-content/uploads/2023/05/KakaoTalk_20230509_065443079.jpg" alt="" class="wp-image-34490" srcset="https://lycos7560.com/wp-content/uploads/2023/05/KakaoTalk_20230509_065443079.jpg 756w, https://lycos7560.com/wp-content/uploads/2023/05/KakaoTalk_20230509_065443079-118x300.jpg 118w, https://lycos7560.com/wp-content/uploads/2023/05/KakaoTalk_20230509_065443079-605x1536.jpg 605w" sizes="(max-width: 756px) 100vw, 756px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<pre class="EnlighterJSRAW" data-enlighter-language="cpp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">#include &lt;iostream>

using namespace std;

string _StrA, _StrB, _TempStr;
int _Res, _DP[1001];

int main()
{
	cin >> _StrA >> _StrB;

	int _Max = max(_StrA.size(), _StrB.size());

	for (int i = 0; i &lt; _StrB.length(); i++) {
		int _Temp = 0;
		for (int j = 0; j &lt; _StrA.length(); j++) {
			if (_Temp &lt; _DP[j]) 
				_Temp = _DP[j];
			else if (_StrB[i] == _StrA[j]) 
				_DP[j] = _Temp + 1;
		}
	}

	for (int i = 0; i &lt; _Max; i++)
		_Res = max(_DP[i], _Res);

	cout &lt;&lt; _Res;

	return 0;
}</pre>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://lycos7560.com/wp-content/uploads/2023/05/image-12.png" alt="" class="wp-image-34482" width="947" height="129" srcset="https://lycos7560.com/wp-content/uploads/2023/05/image-12.png 827w, https://lycos7560.com/wp-content/uploads/2023/05/image-12-300x41.png 300w, https://lycos7560.com/wp-content/uploads/2023/05/image-12-768x105.png 768w" sizes="(max-width: 947px) 100vw, 947px" /></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5698326622209671" crossorigin="anonymous"></script>
<ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5698326622209671" data-ad-slot="4245812909"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>
<p>The post <a href="https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-9251%eb%b2%88-lcs-c-baekjoon/34481/">백준 9251번 (LCS, C++) [BAEKJOON]</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-9251%eb%b2%88-lcs-c-baekjoon/34481/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>백준 14500번 (테트로미노, C++) / 추가 반례 [BAEKJOON]</title>
		<link>https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-14500%eb%b2%88-%ed%85%8c%ed%8a%b8%eb%a1%9c%eb%af%b8%eb%85%b8-c-%ec%b6%94%ea%b0%80-%eb%b0%98%eb%a1%80-baekjoon/33194/</link>
					<comments>https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-14500%eb%b2%88-%ed%85%8c%ed%8a%b8%eb%a1%9c%eb%af%b8%eb%85%b8-c-%ec%b6%94%ea%b0%80-%eb%b0%98%eb%a1%80-baekjoon/33194/#respond</comments>
		
		<dc:creator><![CDATA[lycos7560]]></dc:creator>
		<pubDate>Thu, 16 Feb 2023 01:53:01 +0000</pubDate>
				<category><![CDATA[BaekjoonOnlineJudge]]></category>
		<category><![CDATA[C++/CPP]]></category>
		<category><![CDATA[14500]]></category>
		<category><![CDATA[14500번]]></category>
		<category><![CDATA[algorithm]]></category>
		<category><![CDATA[Baekjoon]]></category>
		<category><![CDATA[brute force]]></category>
		<category><![CDATA[BruteForce]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[cpp]]></category>
		<category><![CDATA[study]]></category>
		<category><![CDATA[공부]]></category>
		<category><![CDATA[기본]]></category>
		<category><![CDATA[기초]]></category>
		<category><![CDATA[반례]]></category>
		<category><![CDATA[백준]]></category>
		<category><![CDATA[백준 14500]]></category>
		<category><![CDATA[백준 14500번]]></category>
		<category><![CDATA[브루트 포스]]></category>
		<category><![CDATA[알고리즘]]></category>
		<category><![CDATA[예제]]></category>
		<category><![CDATA[추가 반례]]></category>
		<category><![CDATA[추가 예제]]></category>
		<category><![CDATA[추가반례]]></category>
		<category><![CDATA[추가예제]]></category>
		<category><![CDATA[코딩테스트]]></category>
		<category><![CDATA[코테]]></category>
		<category><![CDATA[테트로미노]]></category>
		<category><![CDATA[틀렸습니다]]></category>
		<category><![CDATA[틀렸습니다!]]></category>
		<guid isPermaLink="false">https://lycos7560.com/?p=33194</guid>

					<description><![CDATA[<p>백준(BAEKJOON) 14500번 '테트로미노' 문제에 대한 글입니다. 'brute force' 알고리즘과 'DFS 탐색'을 이용하여 해결하였습니다. (This is BAEKJOON's 14500 article on the 'Tetromino' problem. It was solved using the 'brute force' algorithm and 'DFS search'.)</p>
<p>The post <a href="https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-14500%eb%b2%88-%ed%85%8c%ed%8a%b8%eb%a1%9c%eb%af%b8%eb%85%b8-c-%ec%b6%94%ea%b0%80-%eb%b0%98%eb%a1%80-baekjoon/33194/">백준 14500번 (테트로미노, C++) / 추가 반례 [BAEKJOON]</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5698326622209671" crossorigin="anonymous"></script>
<!-- HorizontalAD -->
<ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-5698326622209671" data-ad-slot="6908948342" data-ad-format="auto" data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<div style="height:62px" aria-hidden="true" class="wp-block-spacer"></div>


				<div class="wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-6eabfa96      "
					data-scroll= "1"
					data-offset= "30"
					style=""
				>
				<div class="uagb-toc__wrap">
						<div class="uagb-toc__title">
							목차 테이블						</div>
																						<div class="uagb-toc__list-wrap ">
						<ol class="uagb-toc__list"><li class="uagb-toc__list"><a href="#테트로미노" class="uagb-toc-link__trigger">테트로미노</a><li class="uagb-toc__list"><a href="#통과된-코드" class="uagb-toc-link__trigger">통과된 코드</a><li class="uagb-toc__list"><a href="#추가-반례" class="uagb-toc-link__trigger">추가 반례</a></ol>					</div>
									</div>
				</div>
			


<div style="height:62px" aria-hidden="true" class="wp-block-spacer"></div>



<h1 class="wp-block-heading">테트로미노</h1>



<p class="has-medium-font-size"><a href="https://www.acmicpc.net/problem/14500" target="_blank" rel="noreferrer noopener">https://www.acmicpc.net/problem/14500</a></p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<figure id="problem-info" class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">시간 제한</th><th class="has-text-align-left" data-align="left">메모리 제한</th><th class="has-text-align-left" data-align="left">제출</th><th class="has-text-align-left" data-align="left">정답</th><th class="has-text-align-left" data-align="left">맞힌 사람</th><th class="has-text-align-left" data-align="left">정답 비율</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left">2 초</td><td class="has-text-align-left" data-align="left">512 MB</td><td class="has-text-align-left" data-align="left">69583</td><td class="has-text-align-left" data-align="left">26178</td><td class="has-text-align-left" data-align="left">17011</td><td class="has-text-align-left" data-align="left">35.673%</td></tr></tbody></table></figure>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">문제</h2>



<p class="has-medium-font-size">폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">정사각형은 서로 겹치면 안 된다.</p>



<p class="has-medium-font-size">도형은 모두 연결되어 있어야 한다.</p>



<p class="has-medium-font-size">정사각형의 변끼리 연결되어 있어야 한다. 즉, 꼭짓점과 꼭짓점만 맞닿아 있으면 안 된다.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">정사각형 4개를 이어 붙인 폴리오미노는 테트로미노라고 하며, 다음과 같은 5가지가 있다.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="488" height="308" src="https://lycos7560.com/wp-content/uploads/2023/02/image-73.png" alt="" class="wp-image-33195" srcset="https://lycos7560.com/wp-content/uploads/2023/02/image-73.png 488w, https://lycos7560.com/wp-content/uploads/2023/02/image-73-300x189.png 300w" sizes="(max-width: 488px) 100vw, 488px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-medium-font-size">아름이는 크기가 N×M인 종이 위에 테트로미노 하나를 놓으려고 한다. </p>



<p class="has-medium-font-size">종이는 1×1 크기의 칸으로 나누어져 있으며, 각각의 칸에는 정수가 하나 쓰여 있다.</p>



<p class="has-medium-font-size">테트로미노 하나를 적절히 놓아서 테트로미노가 놓인 칸에 쓰여 있는 수들의 합을 최대로 하는 프로그램을 작성하시오.</p>



<p class="has-medium-font-size">테트로미노는 반드시 한 정사각형이 정확히 하나의 칸을 포함하도록 놓아야 하며, 회전이나 대칭을 시켜도 된다.</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">입력</h2>



<p class="has-medium-font-size">첫째 줄에 종이의 세로 크기 N과 가로 크기 M이 주어진다. (4&nbsp;≤ N, M ≤ 500)</p>



<p class="has-medium-font-size">둘째 줄부터 N개의 줄에 종이에 쓰여 있는 수가 주어진다. </p>



<p class="has-medium-font-size">i번째 줄의 j번째 수는 위에서부터 i번째 칸, 왼쪽에서부터 j번째 칸에 쓰여 있는 수이다. </p>



<p class="has-medium-font-size">입력으로 주어지는 수는 1,000을 넘지 않는 자연수이다.</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">출력</h2>



<p class="has-medium-font-size">첫째 줄에 테트로미노가 놓인 칸에 쓰인 수들의 합의 최댓값을 출력한다.</p>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 입력 1</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">5 5
1 2 3 4 5
5 4 3 2 1
2 3 4 5 6
6 5 4 3 2
1 2 1 2 1</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 출력 1</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">19</pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 입력 2</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 출력 2</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">20</pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 입력 3</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">4 10
1 2 1 2 1 2 1 2 1 2
2 1 2 1 2 1 2 1 2 1
1 2 1 2 1 2 1 2 1 2
2 1 2 1 2 1 2 1 2 1</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 출력 3</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">7</pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">출처</h2>



<ul class="wp-block-list">
<li>데이터를 추가한 사람: <a href="https://www.acmicpc.net/user/appie701" target="_blank" rel="noreferrer noopener">appie701</a>, <a href="https://www.acmicpc.net/user/crookid" target="_blank" rel="noreferrer noopener">crookid</a>, <a href="https://www.acmicpc.net/user/esuperstar" target="_blank" rel="noreferrer noopener">esuperstar</a>, <a href="https://www.acmicpc.net/user/raboribus" target="_blank" rel="noreferrer noopener">raboribus</a>, <a href="https://www.acmicpc.net/user/rlatpwlsdlek" target="_blank" rel="noreferrer noopener">rlatpwlsdlek</a>, <a href="https://www.acmicpc.net/user/stack" target="_blank" rel="noreferrer noopener">stack</a>, <a href="https://www.acmicpc.net/user/vjerksen" target="_blank" rel="noreferrer noopener">vjerksen</a></li>



<li>문제를 만든 사람: <a href="https://www.acmicpc.net/user/baekjoon">baek</a><a href="https://www.acmicpc.net/user/baekjoon" target="_blank" rel="noreferrer noopener">j</a><a href="https://www.acmicpc.net/user/baekjoon">oon</a></li>



<li>문제의 오타를 찾은 사람: <a href="https://www.acmicpc.net/user/bluebrown" target="_blank" rel="noreferrer noopener">bluebrown</a></li>
</ul>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">알고리즘 분류</h2>



<ul class="wp-block-list">
<li><a href="https://www.acmicpc.net/problem/tag/102" target="_blank" rel="noreferrer noopener">구현</a></li>



<li><a href="https://www.acmicpc.net/problem/tag/125" target="_blank" rel="noreferrer noopener">브루트포스 알고리즘</a></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--80);margin-bottom:var(--wp--preset--spacing--80)"/>



<figure class="wp-block-image size-full"><img decoding="async" width="389" height="284" src="https://lycos7560.com/wp-content/uploads/2023/02/image-75.png" alt="" class="wp-image-33204" srcset="https://lycos7560.com/wp-content/uploads/2023/02/image-75.png 389w, https://lycos7560.com/wp-content/uploads/2023/02/image-75-300x219.png 300w" sizes="(max-width: 389px) 100vw, 389px" /></figure>



<p class="has-medium-font-size">DFS 탐색</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="283" height="161" src="https://lycos7560.com/wp-content/uploads/2023/02/image-77.png" alt="" class="wp-image-33206"/></figure>



<p class="has-medium-font-size">BFS 탐색 (나는 예외 처리로 해결)</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h1 class="wp-block-heading">통과된 코드</h1>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<pre class="EnlighterJSRAW" data-enlighter-language="cpp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">#include &lt;iostream>

using namespace std;

constexpr int MAX = 500;

int map[MAX][MAX];

bool checkMap[MAX][MAX];

int N, M, result = 0;

// 탐색하는 방향 설정 =>  상, 하 ,좌 ,우
int dxdy[4][2] = { {-1, 0}, {1, 0}, {0, -1}, {0, 1} };

void DFS_Search(int nowX, int nowY, int cnt, int val)
{
	if (cnt == 4) {
		result = max(result, val);
		return;
	}

	for (int i = 0; i &lt; 4; i++) {

		int dx = nowX + dxdy[i][0];
		int dy = nowY + dxdy[i][1];

		// 범위를 벗어나면 넘어간다.
		if (dx &lt; 0 || dy &lt; 0 || dx >= N || dy >= M) continue;
		// 방문했다면 넘어간다.
		if (checkMap[dx][dy] == true) continue;

		cnt++;
		val += map[dx][dy];
		checkMap[dx][dy] = true;
		DFS_Search(dx, dy, cnt, val);
		checkMap[dx][dy] = false;
		cnt--;
		val -= map[dx][dy];

	}
}

// 'ㅗ' 탐색을 위한 함수
void Exception_Search(int nowX, int nowY, int val)
{
	for (int i = 0; i &lt; 4; i++) {
		int dx = nowX + dxdy[i][0];
		int dy = nowY + dxdy[i][1];
		if (dx &lt; 0 || dy &lt; 0 || dx >= N || dy >= M) continue;
		val += map[dx][dy];
	}

	for (int i = 0; i &lt; 4; i++) {
		int dx = nowX + dxdy[i][0];
		int dy = nowY + dxdy[i][1];

		if (dx &lt; 0 || dy &lt; 0 || dx >= N || dy >= M) {
			result = max(result, val);
			continue;
		}

		val -= map[dx][dy];
		result = max(result, val);
		val += map[dx][dy];
	}

}


int main()
{
	ios_base::sync_with_stdio(false); // scanf와 동기화를 비활성화
	// cin.tie(null); 코드는 cin과 cout의 묶음을 풀어줍니다.
	cin.tie(NULL);
	std::cout.tie(NULL);

	cin >> N >> M;

	for (int i = 0; i &lt; N; i++) {
		for (int j = 0; j &lt; M; j++) {
			cin >> map[i][j];
		}
	}

	for (int i = 0; i &lt; N; i++) {
		for (int j = 0; j &lt; M; j++) {
			checkMap[i][j] = true;
			DFS_Search(i, j, 1, map[i][j]);
			checkMap[i][j] = false;
			Exception_Search(i, j, map[i][j]);
		}
	}

	cout &lt;&lt; result;

	return 0;
}</pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://lycos7560.com/wp-content/uploads/2023/02/image-74.png" alt="" class="wp-image-33198" width="877" height="150" srcset="https://lycos7560.com/wp-content/uploads/2023/02/image-74.png 746w, https://lycos7560.com/wp-content/uploads/2023/02/image-74-300x51.png 300w" sizes="(max-width: 877px) 100vw, 877px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img decoding="async" width="1292" height="646" src="https://lycos7560.com/wp-content/uploads/2023/02/image-79.png" alt="" class="wp-image-33209" srcset="https://lycos7560.com/wp-content/uploads/2023/02/image-79.png 1292w, https://lycos7560.com/wp-content/uploads/2023/02/image-79-300x150.png 300w, https://lycos7560.com/wp-content/uploads/2023/02/image-79-768x384.png 768w" sizes="(max-width: 1292px) 100vw, 1292px" /></figure>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h1 class="wp-block-heading">추가 반례</h1>



<p><a href="https://www.acmicpc.net/board/view/61597" target="_blank" rel="noreferrer noopener">https://www.acmicpc.net/board/view/61597</a></p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 입력 A</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">6 10
3 3 6 4 1 4 8 5 3 2
9 5 1 2 4 1 9 9 5 5
2 5 1 2 3 3 3 7 6 4
1 6 5 6 4 7 4 7 7 4
3 8 5 9 6 4 2 6 1 1
6 3 3 7 1 2 2 2 8 4</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 출력 A</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">33</pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 입력 B</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">4 4
1 1 1 1
2 1000 1 1
1 1000 2 1
1 1 1 1</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 출력 B</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">2004</pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 입력 C</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">4 4
0 0 0 0
0 0 0 0
0 0 0 0
1 2 3 4

4 4
0 0 0 1
0 0 0 2
0 0 0 3
0 0 0 4

4 4
0 0 0 0
0 0 0 0
0 0 1 2
0 0 3 4

4 4
0 0 0 0
0 0 1 0
0 0 2 0
0 0 3 4

4 4
0 0 0 0
0 0 0 0
0 1 2 3
0 4 0 0

4 4
0 0 0 0
0 0 1 2
0 0 0 3
0 0 0 4

4 4
0 0 0 0
0 0 0 0
0 0 0 1
0 4 3 2

4 4
0 0 0 0
0 0 0 1
0 0 0 2
0 0 4 3

4 4
0 0 0 0
0 0 0 0
0 1 0 0
0 2 3 4

4 4
0 0 0 0
0 0 2 1
0 0 3 0
0 0 4 0

4 4
0 0 0 0
0 0 0 0
0 1 2 3
0 0 0 4

4 4
0 0 0 0
0 0 0 1
0 0 2 3
0 0 4 0

4 4
0 0 0 0
0 0 1 0
0 0 2 3
0 0 0 4

4 4
0 0 0 0
0 0 0 0
0 1 2 0
0 0 3 4

4 4
0 0 0 0
0 0 0 0
0 0 3 4
0 1 2 0

4 4
0 0 0 0
0 0 0 1
0 0 2 3
0 0 0 4

4 4
0 0 0 0
0 0 1 0
0 0 2 3
0 0 4 0

4 4
0 0 0 0
0 0 0 0
0 0 1 0
0 2 3 4

4 4
0 0 0 0
0 0 0 0
0 1 2 3
0 0 4 0</pre>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">예제 출력 C</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">10</pre>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5698326622209671" crossorigin="anonymous"></script>
<ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5698326622209671" data-ad-slot="4245812909"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>
<p>The post <a href="https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-14500%eb%b2%88-%ed%85%8c%ed%8a%b8%eb%a1%9c%eb%af%b8%eb%85%b8-c-%ec%b6%94%ea%b0%80-%eb%b0%98%eb%a1%80-baekjoon/33194/">백준 14500번 (테트로미노, C++) / 추가 반례 [BAEKJOON]</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lycos7560.com/cpp/baekjoon_online_judge/%eb%b0%b1%ec%a4%80-14500%eb%b2%88-%ed%85%8c%ed%8a%b8%eb%a1%9c%eb%af%b8%eb%85%b8-c-%ec%b6%94%ea%b0%80-%eb%b0%98%eb%a1%80-baekjoon/33194/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
