변경이력

돌아가기
3 17개 문자 추가

2015/03/22 16:24

Starleaguer

내림차순으로 sort후에 <br> 앞에 값을 뒤의 값으로 빼준다.<br> 5권,3권 < 4권,4권 예외처리한다.<br> 값을 보여준다. 빅오로 O(k) 네요.. ```{.python} def main(book): book.sort(reverse=True) for i in range(4): if book[i]: book[i] -= book[i+1] nMin = min(book[4], book[2]) if nMin: book[4] -= nMin book[2] -= nMin book[3] += nMin*2 printPrice(book) def printPrice(book): PRICES = [1, 0.95, 0.9, 0.8, 0.75] total = 0.0 for i in range(5): total += book[i] * (i+1) * 8 * PRICES[i] print total main([2,2,2,1,1]) main([2000,1000,500,10,1]) main([19023126192856123,8012389197123000,9000123000,5000123100,1000]) ``` ``` 결과 51.2 26444.0 2.09874289363e+17 [Finished in 0.1s] ```
내림차순으로 sort후에 <br> 앞에 값을 뒤의 값으로 빼준다.<br> 5권,3권 < 4권,4권 예외처리한다.<br> 값을 보여준다. 빅오로 O(k) 네요.. ```{.python} def main(book): book.sort(reverse=True) for i in range(4): if book[i]: book[i] -= book[i+1] nMin = min(book[4], book[2]) if nMin: book[4] -= nMin book[2] -= nMin book[3] += nMin*2 printPrice(book) def printPrice(book): PRICES = [1, 0.95, 0.9, 0.8, 0.75] total = 0.0 for i in range(5): total += book[i] * (i+1) * 8 * PRICES[i] print total main([2,2,2,1,1]) main([2000,1000,500,10,1]) main([19023126192856123,8012389197123000,9000123000,5000123100,1000]) ``` ``` 결과 51.2 26444.0 2.09874289363e+17 [Finished in 0.1s] ```
2 68개 문자 추가

2015/03/22 16:20

Starleaguer

1 Original

2015/03/22 16:20

Starleaguer

코딩도장

코딩도장은 프로그래밍 문제풀이를 통해서 코딩 실력을 수련(Practice)하는 곳입니다.