λ¬Έμ
<λ¬Έμ >
μΈνμνμλ ATMμ΄ 1λλ°μ μλ€. μ§κΈ μ΄ ATM μμ Nλͺ μ μ¬λλ€μ΄ μ€μ μμλ€. μ¬λμ 1λ²λΆν° Nλ²κΉμ§ λ²νΈκ° λ§€κ²¨μ Έ μμΌλ©°, iλ² μ¬λμ΄ λμ μΈμΆνλλ° κ±Έλ¦¬λ μκ°μ PiλΆμ΄λ€.
μ¬λλ€μ΄ μ€μ μλ μμμ λ°λΌμ, λμ μΈμΆνλλ° νμν μκ°μ ν©μ΄ λ¬λΌμ§κ² λλ€. μλ₯Ό λ€μ΄, μ΄ 5λͺ μ΄ μκ³ , P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2 μΈ κ²½μ°λ₯Ό μκ°ν΄λ³΄μ. [1, 2, 3, 4, 5] μμλ‘ μ€μ μ λ€λ©΄, 1λ² μ¬λμ 3λΆ λ§μ λμ λ½μ μ μλ€. 2λ² μ¬λμ 1λ² μ¬λμ΄ λμ λ½μ λκΉμ§ κΈ°λ€λ €μΌ νκΈ° λλ¬Έμ, 3+1 = 4λΆμ΄ κ±Έλ¦¬κ² λλ€. 3λ² μ¬λμ 1λ², 2λ² μ¬λμ΄ λμ λ½μ λκΉμ§ κΈ°λ€λ €μΌ νκΈ° λλ¬Έμ, μ΄ 3+1+4 = 8λΆμ΄ νμνκ² λλ€. 4λ² μ¬λμ 3+1+4+3 = 11λΆ, 5λ² μ¬λμ 3+1+4+3+2 = 13λΆμ΄ κ±Έλ¦¬κ² λλ€. μ΄ κ²½μ°μ κ° μ¬λμ΄ λμ μΈμΆνλλ° νμν μκ°μ ν©μ 3+4+8+11+13 = 39λΆμ΄ λλ€.
μ€μ [2, 5, 1, 4, 3] μμλ‘ μ€μ μλ©΄, 2λ² μ¬λμ 1λΆλ§μ, 5λ² μ¬λμ 1+2 = 3λΆ, 1λ² μ¬λμ 1+2+3 = 6λΆ, 4λ² μ¬λμ 1+2+3+3 = 9λΆ, 3λ² μ¬λμ 1+2+3+3+4 = 13λΆμ΄ κ±Έλ¦¬κ² λλ€. κ° μ¬λμ΄ λμ μΈμΆνλλ° νμν μκ°μ ν©μ 1+3+6+9+13 = 32λΆμ΄λ€. μ΄ λ°©λ²λ³΄λ€ λ νμν μκ°μ ν©μ μ΅μλ‘ λ§λ€ μλ μλ€.
μ€μ μ μλ μ¬λμ μ Nκ³Ό κ° μ¬λμ΄ λμ μΈμΆνλλ° κ±Έλ¦¬λ μκ° Piκ° μ£Όμ΄μ‘μ λ, κ° μ¬λμ΄ λμ μΈμΆνλλ° νμν μκ°μ ν©μ μ΅μκ°μ ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
<μ λ ₯>
첫째 μ€μ μ¬λμ μ N(1 ≤ N ≤ 1,000)μ΄ μ£Όμ΄μ§λ€. λμ§Έ μ€μλ κ° μ¬λμ΄ λμ μΈμΆνλλ° κ±Έλ¦¬λ μκ° Piκ° μ£Όμ΄μ§λ€. (1 ≤ Pi ≤ 1,000)
<μΆλ ₯>
첫째 μ€μ κ° μ¬λμ΄ λμ μΈμΆνλλ° νμν μκ°μ ν©μ μ΅μκ°μ μΆλ ₯νλ€.
λ¬Έμ νμ΄
κ°μ₯ μ€νμκ°μ΄ μμ jobλΆν° μννλ shortest job first μκ³ λ¦¬μ¦μ μ¬μ©ν΄μ λ¬Έμ λ₯Ό ν΄κ²°ν μ μμ΅λλ€. λͺ¨λ μ¬λμ΄ λμμ μμ μΈμΆμ κΈ°λ€λ¦°λ€κ³ μκ°νκΈ° λλ¬Έμ, μΈμΆμ νμν μκ°μ΄ κ°μ₯ μμ μ¬λλΆν° μ²λ¦¬νλ κ²μ΄ νμν μκ°μ ν©μ μ΅μλ‘ λ§λλ λ°©λ²μ λλ€.
Nκ°μ μΈμΆ μκ°μ λ²‘ν° Pμ μ μ₯νκ³ , μ€λ¦μ°¨μμΌλ‘ μ λ ¬ν΄μ€λλ€. μ΄ μκ°μ ν©μ P[i]*(N-i)λ₯Ό λͺ¨λ λν κ°μ λλ€. μμ μ λ ₯ 1μ μμλ‘ λ€μλ©΄ μμ μμ μ λ ¬λ Pμ κ°μ [1, 2, 3, 3, 4] μ λλ€.
answer = (1) + (1 + 2) + (1 + 2 + 3) + (1 + 2 + 3 + 3) + (1 + 2 + 3 + 3 + 4)
= (1 * 5) + (2 * 4) + (3 * 3) + (3 * 2) + (4 * 1)
μμ κ°μ΄ answerλ₯Ό ꡬν μ μμ΅λλ€.
μμ€μ½λ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
//11399λ²: ATM
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
int N, answer = 0;
cin >> N;
vector<int> P(N);
for(int i = 0; i < N; i++){
cin >> P[i];
}
sort(P.begin(), P.end()); //Shortest Job First
for(int i = 0; i < N; i++) {
answer += P[i] * (N-i);
}
cout << answer;
return 0;
}
|
cs |
곡λΆν κ²μ μ 리ν λ΄μ©μ λλ€. μμ ν λΆλΆμ΄ μλ€λ©΄ μλ €μ£Όμλ©΄ κ°μ¬νκ² μ΅λλ€ :)
'Algorithm > λ°±μ€(BOJ)' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€ BOJ / C++] 1138λ²: ν μ€λ‘ μκΈ° (0) | 2020.12.29 |
---|---|
[λ°±μ€ BOJ / C++] 2217λ²: λ‘ν (0) | 2020.12.28 |
[λ°±μ€ BOJ / C++] 11047λ²: λμ 0 (0) | 2020.12.28 |
[λ°±μ€ BOJ / C++] 5585λ²: κ±°μ€λ¦λ νμ΄ (0) | 2020.12.28 |
[λ°±μ€ / C++] 10989λ²: μ μ λ ¬νκΈ° 3 νμ΄ (0) | 2020.07.21 |