<aside> 💡
정확한 테스트 케이스 통과와 빠른 시간안에 구현하는게 핵심
</aside>
def solution(wallet, bill):
answer = 0
wallet.sort()
bill.sort()
while bill[0] > wallet[0] or bill[1] > wallet[1]:
if bill[0] > bill[1]:
bill[0] = bill[0] // 2
else:
bill[1] = bill[1] // 2
bill.sort()
answer += 1
return answer
1. 지폐를 접은 횟수를 저장할 정수 변수 answer를 만들고 0을 저장합니다.
2. 반복문을 이용해 bill의 작은 값이 wallet의 작은 값 보다 크거나 bill의 큰 값이 wallet의 큰 값 보다 큰 동안 아래 과정을 반복합니다.
2-1. bill[0]이 bill[1]보다 크다면
bill[0]을 2로 나누고 나머지는 버립니다.
2-2. 그렇지 않다면
bill[1]을 2로 나누고 나머지는 버립니다.
2-3. answer을 1 증가시킵니다.
3. answer을 return합니다.
for 문을 돌면서 //2를 통해 정렬된 순서가 변경될 수 있음. 따라서 for문 내부에서 //2를 해준 다음에 한번더 sort()를 하던지, 반복문의 조건을 min(bill) > min(wallet) or max(bill) > max(wallet)
으로 해야 됨