|
| 1 | +# [level 1] [PCCE 기출문제] 9번 / 지폐 접기 - 340199 |
| 2 | + |
| 3 | +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/340199) |
| 4 | + |
| 5 | +### 성능 요약 |
| 6 | + |
| 7 | +메모리: 86.2 MB, 시간: 0.31 ms |
| 8 | + |
| 9 | +### 구분 |
| 10 | + |
| 11 | +코딩테스트 연습 > PCCE 기출문제 |
| 12 | + |
| 13 | +### 채점결과 |
| 14 | + |
| 15 | +정확성: 100.0<br/>합계: 100.0 / 100.0 |
| 16 | + |
| 17 | +### 제출 일자 |
| 18 | + |
| 19 | +2026년 02월 08일 22:53:24 |
| 20 | + |
| 21 | +### 문제 설명 |
| 22 | + |
| 23 | +<p>민수는 다양한 지폐를 수집하는 취미를 가지고 있습니다. 지폐마다 크기가 달라 지갑에 넣으려면 여러 번 접어서 넣어야 합니다. 예를 들어 지갑의 크기가 30 * 15이고 지폐의 크기가 26 * 17이라면 한번 반으로 접어 13 * 17 크기로 만든 뒤 90도 돌려서 지갑에 넣을 수 있습니다. 지폐를 접을 때는 다음과 같은 규칙을 지킵니다.</p> |
| 24 | + |
| 25 | +<ul> |
| 26 | +<li>지폐를 접을 때는 항상 길이가 긴 쪽을 반으로 접습니다.</li> |
| 27 | +<li>접기 전 길이가 홀수였다면 접은 후 소수점 이하는 버립니다.</li> |
| 28 | +<li>접힌 지폐를 그대로 또는 90도 돌려서 지갑에 넣을 수 있다면 그만 접습니다.</li> |
| 29 | +</ul> |
| 30 | + |
| 31 | +<p>지갑의 가로, 세로 크기를 담은 정수 리스트 <code>wallet</code>과 지폐의 가로, 세로 크기를 담은 정수 리스트 <code>bill</code>가 주어질 때, 지갑에 넣기 위해서 지폐를 최소 몇 번 접어야 하는지 return하도록 solution함수를 완성해 주세요.</p> |
| 32 | + |
| 33 | +<p>지폐를 지갑에 넣기 위해 접어야 하는 최소 횟수를 구하는 과정은 다음과 같습니다.</p> |
| 34 | +<div class="highlight"><pre class="codehilite"><code>1. 지폐를 접은 횟수를 저장할 정수 변수 answer를 만들고 0을 저장합니다. |
| 35 | +2. 반복문을 이용해 bill의 작은 값이 wallet의 작은 값 보다 크거나 bill의 큰 값이 wallet의 큰 값 보다 큰 동안 아래 과정을 반복합니다. |
| 36 | + 2-1. bill[0]이 bill[1]보다 크다면 |
| 37 | + bill[0]을 2로 나누고 나머지는 버립니다. |
| 38 | + 2-2. 그렇지 않다면 |
| 39 | + bill[1]을 2로 나누고 나머지는 버립니다. |
| 40 | + 2-3. answer을 1 증가시킵니다. |
| 41 | +3. answer을 return합니다. |
| 42 | +</code></pre></div> |
| 43 | +<ul> |
| 44 | +<li>위의 의사코드와 작동방식이 다른 코드를 작성해도 상관없습니다.</li> |
| 45 | +</ul> |
| 46 | + |
| 47 | +<hr> |
| 48 | + |
| 49 | +<h4>제한사항</h4> |
| 50 | + |
| 51 | +<ul> |
| 52 | +<li><code>wallet</code>의 길이 = <code>bill</code>의 길이 = 2</li> |
| 53 | +<li>10 ≤ <code>wallet[0]</code>, <code>wallet[1]</code> ≤ 100</li> |
| 54 | +<li>10 ≤ <code>bill[0]</code>, <code>bill[1]</code> ≤ 2,000</li> |
| 55 | +</ul> |
| 56 | + |
| 57 | +<hr> |
| 58 | + |
| 59 | +<h4>입출력 예</h4> |
| 60 | +<table class="table"> |
| 61 | + <thead><tr> |
| 62 | +<th>wallet</th> |
| 63 | +<th>bill</th> |
| 64 | +<th>result</th> |
| 65 | +</tr> |
| 66 | +</thead> |
| 67 | + <tbody><tr> |
| 68 | +<td>[30, 15]</td> |
| 69 | +<td>[26, 17]</td> |
| 70 | +<td>1</td> |
| 71 | +</tr> |
| 72 | +<tr> |
| 73 | +<td>[50, 50]</td> |
| 74 | +<td>[100, 241]</td> |
| 75 | +<td>4</td> |
| 76 | +</tr> |
| 77 | +</tbody> |
| 78 | + </table> |
| 79 | +<hr> |
| 80 | + |
| 81 | +<h4>입출력 예 설명</h4> |
| 82 | + |
| 83 | +<p>입출력 예 #1</p> |
| 84 | + |
| 85 | +<ul> |
| 86 | +<li>지문과 동일합니다.</li> |
| 87 | +</ul> |
| 88 | + |
| 89 | +<p>입출력 예 #2</p> |
| 90 | + |
| 91 | +<ul> |
| 92 | +<li>지폐를 접으면 다음과 같이 크기가 줄어듭니다. 따라서 4번 접으면 지갑에 넣을 수 있습니다.</li> |
| 93 | +<li>[100, 241] -> [100, 120] -> [100, 60] -> [50, 60] -> [50, 30]</li> |
| 94 | +</ul> |
| 95 | + |
| 96 | +<hr> |
| 97 | + |
| 98 | +<ul> |
| 99 | +<li>cpp를 응시하는 경우 리스트는 배열과 동일한 의미이니 풀이에 참고해주세요. |
| 100 | + |
| 101 | +<ul> |
| 102 | +<li>ex) 번호가 담긴 정수 <u><strong>리스트</strong></u> <code>numbers</code>가 주어집니다. => 번호가 담긴 정수 <u><strong>배열</strong></u> <code>numbers</code>가 주어집니다.</li> |
| 103 | +</ul></li> |
| 104 | +<li>java를 응시하는 경우 리스트는 배열, 함수는 메소드와 동일한 의미이니 풀이에 참고해주세요. |
| 105 | + |
| 106 | +<ul> |
| 107 | +<li>ex) solution <u><strong>함수</strong></u>가 올바르게 작동하도록 한 줄을 수정해 주세요. => solution <u><strong>메소드</strong></u>가 올바르게 작동하도록 한 줄을 수정해 주세요.</li> |
| 108 | +</ul></li> |
| 109 | +</ul> |
| 110 | + |
| 111 | + |
| 112 | +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges |
0 commit comments