1. 문제 링크
https://www.acmicpc.net/problem/27963
2. 풀이 방법
합금을 이루는 두 금속의 혼합 전 밀도를 각각 $d_1$, $d_2$, 혼합 전 질량을 각각 $m_1$, $m_2$, 혼합 전 부피를 $V_1$, $V_2$라고 하자.
그리고 혼합 후 밀도를 $d$, 혼합 후 질량을 $m$, 혼합 후 부피를 $V$라고 하자.
그러면 혼합 후 질량은 혼합 전 질량의 합이므로 $m = m_1 + m_2$ 이고, 혼합 후 부피도 혼합 전 부피의 합이므로 $V = V_1 + V_2$ 이다.
또한 $밀도 = \cfrac{질량}{부피}$ 이므로, $d_1 = \cfrac{m_1}{V_1}$ , $d_2 = \cfrac{m_2}{V_2}$ , $d = \cfrac{m}{V}$ 이 성립한다.
$d_1 > d_2$ 로 가정하자. ($d_1 < d_2$ 인 경우에는 둘의 값을 서로 바꾸면 된다.)
문제에서 $\chi$는 두 금속 중 밀도가 더 높은 쪽이 기념주화에서 차지하는 비율이라고 했으므로, $m_1 = \cfrac{\chi}{100} \cdot m$ 이고 $m_2 = \cfrac{100 - \chi}{100} \cdot m$ 이다.
그러면 $V_1 = \cfrac{m_1}{d_1} = \cfrac{\chi \cdot m}{100 \cdot d_1}$이고, $V_2 = \cfrac{m_2}{d_2} = \cfrac{\left(100 - \chi\right) m}{100 \cdot d_2}$ 이다.
$V = V_1 + V_2$ 이므로, $V = \cfrac{\chi \cdot m \cdot d_2 + \left(100 - \chi\right) m \cdot d_1}{100 \cdot d_1 \cdot d_2}$ 이다.
$d = \cfrac{m}{V}$ 이므로, $d = \cfrac{100 \cdot m \cdot d_1 \cdot d_2}{\chi \cdot m \cdot d_2 + \left(100 - \chi\right) m \cdot d_1} = \cfrac{100 \cdot d_1 \cdot d_2}{\chi \cdot d_2 + \left(100 - \chi\right) d_1}$ 이다.
이제 이 수식을 활용하면 주어진 $d_1$, $d_2$, $\chi$ 으로 $d$를 구할 수 있다.
3. 전체 코드 (C++)
- C++ : https://github.com/infikei/algorithm/blob/main/baekjoon_all/27000%2B/boj_27963_contest39_E_NP.cpp
'Baekjoon' 카테고리의 다른 글
백준 25548번 : 신기한 숫자 2 풀이 (0) | 2025.02.27 |
---|---|
백준 33516번 : skeep 문자열 풀이 (1) | 2025.02.25 |
백준 2532번 : 먹이사슬 풀이 (0) | 2025.02.19 |
백준 13459번, 13460번, 15644번, 15653번 : 구슬 탈출 1~4 풀이 (1) | 2025.02.18 |
백준 1307번 : 마방진 풀이 (0) | 2025.02.13 |
1. 문제 링크
https://www.acmicpc.net/problem/27963
2. 풀이 방법
합금을 이루는 두 금속의 혼합 전 밀도를 각각 $d_1$, $d_2$, 혼합 전 질량을 각각 $m_1$, $m_2$, 혼합 전 부피를 $V_1$, $V_2$라고 하자.
그리고 혼합 후 밀도를 $d$, 혼합 후 질량을 $m$, 혼합 후 부피를 $V$라고 하자.
그러면 혼합 후 질량은 혼합 전 질량의 합이므로 $m = m_1 + m_2$ 이고, 혼합 후 부피도 혼합 전 부피의 합이므로 $V = V_1 + V_2$ 이다.
또한 $밀도 = \cfrac{질량}{부피}$ 이므로, $d_1 = \cfrac{m_1}{V_1}$ , $d_2 = \cfrac{m_2}{V_2}$ , $d = \cfrac{m}{V}$ 이 성립한다.
$d_1 > d_2$ 로 가정하자. ($d_1 < d_2$ 인 경우에는 둘의 값을 서로 바꾸면 된다.)
문제에서 $\chi$는 두 금속 중 밀도가 더 높은 쪽이 기념주화에서 차지하는 비율이라고 했으므로, $m_1 = \cfrac{\chi}{100} \cdot m$ 이고 $m_2 = \cfrac{100 - \chi}{100} \cdot m$ 이다.
그러면 $V_1 = \cfrac{m_1}{d_1} = \cfrac{\chi \cdot m}{100 \cdot d_1}$이고, $V_2 = \cfrac{m_2}{d_2} = \cfrac{\left(100 - \chi\right) m}{100 \cdot d_2}$ 이다.
$V = V_1 + V_2$ 이므로, $V = \cfrac{\chi \cdot m \cdot d_2 + \left(100 - \chi\right) m \cdot d_1}{100 \cdot d_1 \cdot d_2}$ 이다.
$d = \cfrac{m}{V}$ 이므로, $d = \cfrac{100 \cdot m \cdot d_1 \cdot d_2}{\chi \cdot m \cdot d_2 + \left(100 - \chi\right) m \cdot d_1} = \cfrac{100 \cdot d_1 \cdot d_2}{\chi \cdot d_2 + \left(100 - \chi\right) d_1}$ 이다.
이제 이 수식을 활용하면 주어진 $d_1$, $d_2$, $\chi$ 으로 $d$를 구할 수 있다.
3. 전체 코드 (C++)
- C++ : https://github.com/infikei/algorithm/blob/main/baekjoon_all/27000%2B/boj_27963_contest39_E_NP.cpp
'Baekjoon' 카테고리의 다른 글
백준 25548번 : 신기한 숫자 2 풀이 (0) | 2025.02.27 |
---|---|
백준 33516번 : skeep 문자열 풀이 (1) | 2025.02.25 |
백준 2532번 : 먹이사슬 풀이 (0) | 2025.02.19 |
백준 13459번, 13460번, 15644번, 15653번 : 구슬 탈출 1~4 풀이 (1) | 2025.02.18 |
백준 1307번 : 마방진 풀이 (0) | 2025.02.13 |