변경이력

돌아가기
5 97개 문자 추가

2015/01/06 19:44

Soori

```{.python} # 주어진 문제에서 모든 가격 책정의 경우를 구하기 위해 분할을 이용하였습니다. 예를 들어, 예시에 나오는 8권은 5+3, 5+2+2, 4+4, 4+2+2, 등등등 많은 분할의 수를 가집니다. 이걸 다 구하고 더해서 가장 작은 값을 출력하였습니다. 이 코드에 좋은 점은 100권 0권 2권 17권 0권 이런 식의 다양한 경우에 대해서도 신뢰할 수 있는 값을 구할 수 있다는 것입니다.(왜냐면 무식하게 다 구한거니깐...) def bookdiscount(): print "Choose the Harry Potter Edition.(input NUNMER as integer)" a = [] for i in range(5): a.append(int(raw_input("%s'th edition : " % (i+1)))) book = 0 kind = 0 for i in a: book = book + i if i>0: kind = kind +1 pp = [] pt = [] ct = [] for i in range(kind): k = kind - i for b in range((book/k)): pt = f(book-b*k, k) pt.extend([k]*b) pt.sort() pp.append(pt) for i in range(len(pp)): for j in pp[i+1:]: if pp[i] == j: pp.remove(j) for l in pp: ct.append(cost(l)) ct.sort() set(ct) print "Possible Cost : "+str(list(set(ct))) print "Minimum Cost is %s EUR." % ct[0] def f(b, k): p = [] while b > k: p.append(k) b = b-k p.append(b) return p def cost(l): cos = 0 for i in l: if i==1: cos = cos + 8 elif i==2: cos = cos + 8*i*0.95 elif i==3: cos = cos + 8*i*0.9 elif i==4: cos = cos + 8*i*0.8 elif i==5: cos = cos + 8*i*0.75 return cos ```
```{.python} # 주어진 문제에서 모든 가격 책정의 경우를 구하기 위해 분할을 이용하였습니다. 예를 들어, 예시에 나오는 8권은 5+3, 5+2+2, 4+4, 4+2+2, 등등등 많은 분할의 수를 가집니다. 이걸 다 구하고 더해서 가장 작은 값을 출력하였습니다. 이 코드에 좋은 점은 100권 0권 2권 17권 0권 이런 식의 다양한 경우에 대해서도 신뢰할 수 있는 값을 구할 수 있다는 것입니다.(왜냐면 무식하게 다 구한거니깐...) def bookdiscount(): print "Choose the Harry Potter Edition.(input NUNMER as integer)" a = [] for i in range(5): a.append(int(raw_input("%s'th edition : " % (i+1)))) book = 0 kind = 0 for i in a: book = book + i if i>0: kind = kind +1 pp = [] pt = [] ct = [] for i in range(kind): k = kind - i for b in range((book/k)): pt = f(book-b*k, k) pt.extend([k]*b) pt.sort() pp.append(pt) for i in range(len(pp)): for j in pp[i+1:]: if pp[i] == j: pp.remove(j) for l in pp: ct.append(cost(l)) ct.sort() set(ct) print "Possible Cost : "+str(list(set(ct))) print "Minimum Cost is %s EUR." % ct[0] def f(b, k): p = [] while b > k: p.append(k) b = b-k p.append(b) return p def cost(l): cos = 0 for i in l: if i==1: cos = cos + 8 elif i==2: cos = cos + 8*i*0.95 elif i==3: cos = cos + 8*i*0.9 elif i==4: cos = cos + 8*i*0.8 elif i==5: cos = cos + 8*i*0.75 return cos ```
4 86개 문자 추가 326개 문자 삭제

2015/01/06 19:38

Soori

3 374개 문자 추가 17개 문자 삭제

2015/01/06 19:25

Soori

2 55개 문자 추가 1개 문자 삭제

2015/01/06 19:03

Soori

1 Original

2015/01/06 18:51

Soori

코딩도장

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