ㅎㅎ 이번엔 예문이 자세히 나와 있어서 내가 정리할 시간을 줄였다 ㅎㅎ!
처음에는 Arrays.sort로 해서 최댓값을 뺐는데, swap하고 다시 계산하니 계산이 한 번 더 됐다...
내가 어딘갈 분명히 잘못한 것일텐데 헛허
그래서 Math의 max, min을 사용해서 풀었다.
class Solution {
public int solution(int[] wallet, int[] bill) {
int answer = 0;
int bWallet = Math.max(wallet[0], wallet[1]);
int sWallet = Math.min(wallet[0], wallet[1]);
int bBill = Math.max(bill[0], bill[1]);
int sBill = Math.min(bill[0], bill[1]);
while (true) {
if(sBill > sWallet || bBill > bWallet) {
bBill = bBill/2;
answer++;
}
//접을 수 있는 지폐가 남아있으면 값 바꿔서 접기
if(bBill < sBill) {
int tmp = bBill;
bBill = sBill;
sBill = tmp;
}
//지갑의 크기보다 같거나 작으면 종료
if(sBill <= sWallet && bBill <= bWallet) {
break;
}
}
return answer;
}
}
성공!