From d28b856d05941487d6814896e4ee4989b9e34e98 Mon Sep 17 00:00:00 2001 From: SSUM <116950962+ssum21@users.noreply.github.com> Date: Wed, 21 May 2025 17:58:15 +0900 Subject: [PATCH] =?UTF-8?q?[Silver=20II]=20Title:=20=EC=A1=B0=EA=B0=81=20?= =?UTF-8?q?=EC=BC=80=EC=9D=B4=ED=81=AC,=20Time:=2032=20ms,=20Memory:=20324?= =?UTF-8?q?12=20KB=20-BaekjoonHub?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 백준/Silver/25212. 조각 케이크/README.md | 40 +++++++++++++++++++ 백준/Silver/25212. 조각 케이크/조각 케이크.py | 21 ++++++++++ 2 files changed, 61 insertions(+) create mode 100644 백준/Silver/25212. 조각 케이크/README.md create mode 100644 백준/Silver/25212. 조각 케이크/조각 케이크.py diff --git a/백준/Silver/25212. 조각 케이크/README.md b/백준/Silver/25212. 조각 케이크/README.md new file mode 100644 index 0000000..5dffa50 --- /dev/null +++ b/백준/Silver/25212. 조각 케이크/README.md @@ -0,0 +1,40 @@ +# [Silver II] 조각 케이크 - 25212 + +[문제 링크](https://www.acmicpc.net/problem/25212) + +### 성능 요약 + +메모리: 32412 KB, 시간: 32 ms + +### 분류 + +브루트포스 알고리즘, 수학 + +### 제출 일자 + +2025년 5월 21일 17:57:55 + +### 문제 설명 + +

안즈는 생일선물로 조각 케이크를 잔뜩 받았다.

+ +

+ +

케이크를 먹고 행복해하던 안즈는, 남은 케이크를 정리해 냉장고에 넣는 귀찮은 일을 해야 한다는 사실을 깨닫고 말았다.

+ +

결국 안즈는 케이크를 정리하는 좋은 방법을 알아냈다. 남은 조각 케이크들을 모아 케이크 한 판으로 만들어 버리는 것이다! 조각 케이크들의 크기의 합이 99100판 이상 101100판 이하라면 모아서 케이크 한 판으로 만들 수 있다.

+ +

그런데 안즈는 문득, 조각 케이크들을 골라서 한 판으로 만들 수 있는 경우의 수가 몇 가지나 되는지 궁금해졌다.

+ +

하지만 그 순간 안즈는 매우 귀찮아졌기 때문에, 여러분에게 해결을 부탁했다.

+ +### 입력 + +

첫째 줄에 남은 조각 케이크의 개수 N이 주어진다.

+ +

둘째 줄에 각 조각 케이크의 크기를 나타내는 정수 ci가 공백으로 구분되어 주어진다. 이는 i번째 조각 케이크의 크기가 1ci판임을 뜻한다.

+ +### 출력 + +

조각 케이크들을 골랐을 때, 고른 조각 케이크를 모두 합쳐서 케이크 한 판으로 만들 수 있는 경우의 수를 출력한다.

+ diff --git a/백준/Silver/25212. 조각 케이크/조각 케이크.py b/백준/Silver/25212. 조각 케이크/조각 케이크.py new file mode 100644 index 0000000..8bf1d7c --- /dev/null +++ b/백준/Silver/25212. 조각 케이크/조각 케이크.py @@ -0,0 +1,21 @@ +import sys +from itertools import combinations + +input = sys.stdin.readline + +n = int(input()) +arr = list(map(int, input().split())) +total = 0 + +translate_arr = [0] * n + +for i in range(n): + translate_arr[i] = 1 / arr[i] + +for i in range(1, n+1): + for j in combinations(translate_arr, i): + k = sum(j) + if(k>=0.99 and k<=1.01): + total+=1 + +print(total) \ No newline at end of file