[프로그래머스] 지폐 접기(340199)

lhs's avatar
Nov 24, 2024
[프로그래머스] 지폐 접기(340199)
 

1. 문제 풀이 아이디어

  • 문제에 주어진 의사코드를 그대로 구현하면 문제를 해결할 수 있다.

2. 나의 정답 코드

class Solution { public int solution(int[] wallet, int[] bill) { int answer = 0; while (true) { int walletMin = Math.min(wallet[0], wallet[1]); int walletMax = Math.max(wallet[0], wallet[1]); int billMin = Math.min(bill[0], bill[1]); int billMax = Math.max(bill[0], bill[1]); if (billMin <= walletMin && billMax <= walletMax) break; if (bill[0] > bill[1]) bill[0] /= 2; else bill[1] /= 2; answer++; } return answer; } }

3. 정리

  • while 반복문 안에서 지갑과 지폐의 최소값과 최대값을 저장한다.
  • 지갑의 최소값이 지폐의 최소값 이상이고, 지갑의 최대값이 지폐의 최대값 이상일 때 반복문을 빠져나온다.
  • 반복문에서는 지폐의 큰 값을 2로 나누고, 결과값을 증가시키는 과정을 반복하여 문제를 해결한다.
Share article

LHS's Study Space