알고리즘/python

[프로그래머스/Python] 340199번: 지폐접기 [PCCE 기출문제 9번]

minliz 2025. 4. 21. 11:32

목차

📝 문제

🎯 알고리즘 핵심 단계

✅ 실습 인증 파트_코드

⚡ 트러블 슈팅

🤔 이것도 한 번 생각해 봐요! (참고 자료)


📝 문제


🎯 알고리즘

💡 문제 이해

  • wallet = [지갑의 가로, 세로]
  • bill = [지폐의 가로, 세로]

지폐를 반으로 접을 수 있음 (한 번 접을 때마다 긴 변을 반으로) 지갑에 들어갈 때까지 지폐를 접는 최소 횟수를 구하는 문제.

💡 문제 접근

 

  • 한 번 접을 때마다 지폐의 긴 변을 절반으로 접을 수 있음
  • 가로와 세로 순서는 상관없이 지폐가 어떤 방향으로든 지갑 안에 들어가기만 하면 됨 (즉, 회전 가능)
  1. bill을 계속 접는다
    • 긴 쪽을 반으로 접는다 (max(bill) 기준)
  2. 지갑보다 작아질 때까지 반복
    • min(bill) > min(wallet) 또는 max(bill) > max(wallet)인 동안 반복
  3. 접을 때마다 answer += 1
  4. 최종 접은 횟수 반환

 


✅ 실습 인증 _코드

def solution(wallet, bill):
    answer = 0
    while min(bill)> min(wallet) or max(bill) > max(wallet):
        if bill[0]> bill[1]:
            bill[0] = bill[0]//2
        else:
            bill[1] = bill[1]//2
        answer+=1
    return answer