|
| 1 | +# [level 2] [1차] 프렌즈4블록 - 17679 |
| 2 | + |
| 3 | +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/17679) |
| 4 | + |
| 5 | +### 성능 요약 |
| 6 | + |
| 7 | +메모리: 101 MB, 시간: 32.08 ms |
| 8 | + |
| 9 | +### 구분 |
| 10 | + |
| 11 | +코딩테스트 연습 > 2018 KAKAO BLIND RECRUITMENT |
| 12 | + |
| 13 | +### 채점결과 |
| 14 | + |
| 15 | +정확성: 100.0<br/>합계: 100.0 / 100.0 |
| 16 | + |
| 17 | +### 제출 일자 |
| 18 | + |
| 19 | +2025년 08월 05일 09:55:07 |
| 20 | + |
| 21 | +### 문제 설명 |
| 22 | + |
| 23 | +<h2>프렌즈4블록</h2> |
| 24 | + |
| 25 | +<p>블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 "프렌즈4블록".<br> |
| 26 | +같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙어있을 경우 사라지면서 점수를 얻는 게임이다.</p> |
| 27 | + |
| 28 | +<p><img src="http://t1.kakaocdn.net/welcome2018/pang1.png" title="Friends 4 block!" alt="board map"><br> |
| 29 | +만약 판이 위와 같이 주어질 경우, 라이언이 2×2로 배치된 7개 블록과 콘이 2×2로 배치된 4개 블록이 지워진다. 같은 블록은 여러 2×2에 포함될 수 있으며, 지워지는 조건에 만족하는 2×2 모양이 여러 개 있다면 한꺼번에 지워진다.</p> |
| 30 | + |
| 31 | +<p><img src="http://t1.kakaocdn.net/welcome2018/pang2.png" title="Friends 4 block!" alt="board map"></p> |
| 32 | + |
| 33 | +<p>블록이 지워진 후에 위에 있는 블록이 아래로 떨어져 빈 공간을 채우게 된다.</p> |
| 34 | + |
| 35 | +<p><img src="http://t1.kakaocdn.net/welcome2018/pang3.png" title="Friends 4 block!" alt="board map"></p> |
| 36 | + |
| 37 | +<p>만약 빈 공간을 채운 후에 다시 2×2 형태로 같은 모양의 블록이 모이면 다시 지워지고 떨어지고를 반복하게 된다.<br> |
| 38 | +<img src="http://t1.kakaocdn.net/welcome2018/pang4.png" title="Friends 4 block!" alt="board map"></p> |
| 39 | + |
| 40 | +<p>위 초기 배치를 문자로 표시하면 아래와 같다.</p> |
| 41 | +<div class="highlight"><pre class="codehilite"><code>TTTANT |
| 42 | +RRFACC |
| 43 | +RRRFCC |
| 44 | +TRRRAA |
| 45 | +TTMMMF |
| 46 | +TMMTTJ |
| 47 | +</code></pre></div> |
| 48 | +<p>각 문자는 라이언(R), 무지(M), 어피치(A), 프로도(F), 네오(N), 튜브(T), 제이지(J), 콘(C)을 의미한다</p> |
| 49 | + |
| 50 | +<p>입력으로 블록의 첫 배치가 주어졌을 때, 지워지는 블록은 모두 몇 개인지 판단하는 프로그램을 제작하라.</p> |
| 51 | + |
| 52 | +<h3>입력 형식</h3> |
| 53 | + |
| 54 | +<ul> |
| 55 | +<li>입력으로 판의 높이 <code>m</code>, 폭 <code>n</code>과 판의 배치 정보 <code>board</code>가 들어온다.</li> |
| 56 | +<li>2 ≦ <code>n</code>, <code>m</code> ≦ 30</li> |
| 57 | +<li><code>board</code>는 길이 <code>n</code>인 문자열 <code>m</code>개의 배열로 주어진다. 블록을 나타내는 문자는 대문자 A에서 Z가 사용된다.</li> |
| 58 | +</ul> |
| 59 | + |
| 60 | +<h3>출력 형식</h3> |
| 61 | + |
| 62 | +<p>입력으로 주어진 판 정보를 가지고 몇 개의 블록이 지워질지 출력하라.</p> |
| 63 | + |
| 64 | +<h3>입출력 예제</h3> |
| 65 | +<table class="table"> |
| 66 | + <thead><tr> |
| 67 | +<th>m</th> |
| 68 | +<th>n</th> |
| 69 | +<th>board</th> |
| 70 | +<th>answer</th> |
| 71 | +</tr> |
| 72 | +</thead> |
| 73 | + <tbody><tr> |
| 74 | +<td>4</td> |
| 75 | +<td>5</td> |
| 76 | +<td>["CCBDE", "AAADE", "AAABF", "CCBBF"]</td> |
| 77 | +<td>14</td> |
| 78 | +</tr> |
| 79 | +<tr> |
| 80 | +<td>6</td> |
| 81 | +<td>6</td> |
| 82 | +<td>["TTTANT", "RRFACC", "RRRFCC", "TRRRAA", "TTMMMF", "TMMTTJ"]</td> |
| 83 | +<td>15</td> |
| 84 | +</tr> |
| 85 | +</tbody> |
| 86 | + </table> |
| 87 | +<h3>예제에 대한 설명</h3> |
| 88 | + |
| 89 | +<ul> |
| 90 | +<li>입출력 예제 1의 경우, 첫 번째에는 A 블록 6개가 지워지고, 두 번째에는 B 블록 4개와 C 블록 4개가 지워져, 모두 14개의 블록이 지워진다.</li> |
| 91 | +<li>입출력 예제 2는 본문 설명에 있는 그림을 옮긴 것이다. 11개와 4개의 블록이 차례로 지워지며, 모두 15개의 블록이 지워진다.</li> |
| 92 | +</ul> |
| 93 | + |
| 94 | +<p><a href="http://tech.kakao.com/2017/09/27/kakao-blind-recruitment-round-1/" target="_blank" rel="noopener">해설 보러가기</a></p> |
| 95 | + |
| 96 | + |
| 97 | +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges |
0 commit comments