κ΅νμμ μ κ±°
λ¬Έμ
λ€μμ΄λ μ¬λμ λ§μμ μ½μ μ μλ κΈ°κ³λ₯Ό κ°μ§κ³ μλ€. λ€μμ΄λ μ΄ κΈ°κ³λ₯Ό μ΄μ©ν΄μ 2008λ 4μ 9μΌ κ΅νμμ μ κ±°λ₯Ό μ‘°μνλ €κ³ νλ€.
λ€μμ΄μ κΈ°κ³λ κ° μ¬λλ€μ΄ λꡬλ₯Ό μ°μ μ§ λ―Έλ¦¬ μ½μ μ μλ€. μ΄λ€ μ¬λμ΄ λꡬλ₯Ό μ°μ μ§ μ νμΌλ©΄, λ°λμ μ κ±°λ κ·Έ μ¬λμ μ°λλ€.
νμ¬ ννꡬμ λμ¨ κ΅νμμ ν보λ Nλͺ μ΄λ€. λ€μμ΄λ μ΄ κΈ°κ³λ₯Ό μ΄μ©ν΄μ κ·Έ λ§μμ μ£Όλ―Ό Mλͺ μ λ§μμ λͺ¨λ μ½μλ€.
λ€μμ΄λ κΈ°νΈ 1λ²μ΄λ€. λ€μμ΄λ μ¬λλ€μ λ§μμ μ½μ΄μ μμ μ μ°μ§ μμΌλ €λ μ¬λμ λμΌλ‘ 맀μν΄μ κ΅νμμμ λΉμ μ΄ λκ² νλ €κ³ νλ€. λ€λ₯Έ λͺ¨λ μ¬λμ λνμ λ³΄λ€ λ§μ λνμλ₯Ό κ°μ§ λ, κ·Έ μ¬λμ΄ κ΅νμμμ λΉμ λλ€.
μλ₯Ό λ€μ΄μ, λ§μμ μ½μ κ²°κ³Ό κΈ°νΈ 1λ²μ΄ 5ν, κΈ°νΈ 2λ²μ΄ 7ν, κΈ°νΈ 3λ²μ΄ 7ν λΌκ³ νλ€λ©΄, λ€μμ΄λ 2λ² ν보λ₯Ό μ°μΌλ €κ³ νλ μ¬λ 1λͺ κ³Ό, 3λ² ν보λ₯Ό μ°μΌλ €κ³ νλ μ¬λ 1λͺ μ λμΌλ‘ 맀μνλ©΄, κ΅νμμμ λΉμ μ΄ λλ€.
λμΌλ‘ 맀μν μ¬λμ λ°λμ λ€μμ΄λ₯Ό μ°λλ€κ³ κ°μ νλ€.
λ€μμ΄κ° 맀μν΄μΌνλ μ¬λμ μ΅μκ°μ μΆλ ₯νλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
첫째 μ€μ ν보μ μ Nμ΄ μ£Όμ΄μ§λ€. λμ§Έ μ€λΆν° μ°¨λ‘λλ‘ κΈ°νΈ 1λ²μ μ°μΌλ €κ³ νλ μ¬λμ μ, κΈ°νΈ 2λ²μ μ°μΌλ €κ³ νλ μ, μ΄λ κ² μ΄ Nκ°μ μ€μ κ±Έμ³ μ λ ₯μ΄ λ€μ΄μ¨λ€. Nμ 1,000λ³΄λ€ μκ±°λ κ°μ μμ°μμ΄κ³ , λνμλ 1,000λ³΄λ€ μκ±°λ κ°μ μμ°μμ΄λ€.
μΆλ ₯
첫째 μ€μ λ€μμ΄κ° 맀μν΄μΌ νλ μ¬λμ μ΅μκ°μ μΆλ ₯νλ€.
μκ³ λ¦¬μ¦ λΆλ₯
[λΈλ£¨νΈ ν¬μ€](https://www.acmicpc.net/problem/tag/λΈλ£¨νΈ ν¬μ€)
λμ λ΅
μκ°μ νλ¦
-
νλμ© μ€μ¬λ³΄μ
μκ°λ³΅μ‘λ μ κ°λ₯ν κ² κ°μ§λ§ λ€λ₯Έ λ°©λ²μ ν λ² μ°Ύμ보μλ€.
-
(κ°μ₯ ν° μ - λ€μμ΄ μ¬λ / 2) λ°λ³΅νκΈ°
λ°λ‘κ° λμμ μ€ν¨
μ½λ
brute force
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int N;
vector<int> num_arr;
int dasom;
int howManyPeople() {
//O(n*n)
/* λ΅ κ΅¬νκΈ° */
if (num_arr.size() == 0) {
return 0;
}
int answer = 0;
int tmp;
while (num_arr.size() != 0) {
sort(num_arr.begin(), num_arr.end());
if (num_arr[num_arr.size() - 1] < dasom) // μ μΌ ν° μλ³΄λ€ dasomμ΄ ν¬λ©΄
break;
num_arr[num_arr.size() - 1]--; dasom++; answer++;
int size = num_arr.size();
for (int i = size - 1; i >= 0; i--) {
if (num_arr[i]<dasom)
num_arr.erase(num_arr.begin() + i);
}
}
return answer;
}
int main() {
cin >> N;
cin >> dasom;
for (int i = 0; i < N - 1; i++) {
int tmp;
cin >> tmp;
if (dasom <= tmp)
num_arr.push_back(tmp);
}
cout << howManyPeople();
}
μ€κ°μ sortλ μ§μ ꡬννκ³ , STLμ μ¬λ¬κ°μ§ 컨ν μ΄λ multiset, set λ±μ μ΄μ©ν΄λ³΄κΈ°λ νμμΌλ κ²°κ΅ κ°μ₯ κΈ°λ³Έμ μΈ λ°©λ²μΌλ‘ λμμλ€.
κ³μ λ°νμμλ¬κ° λμ μμνλλ°, κ°λ¨ν μ½λλΌμ ν¨μλ₯Ό ꡬννμ§ μμ κ²μ΄ λ¬Έμ μλ€. ν¨μκ° μμΌλ λ€μμ΄λ₯Ό μ§μ§νλ μ¬λμ΄ κ°μ₯ λ§μ λ return 1;
μ νλλ main ν¨μμμ λ°νμμλ¬ μ²λ¦¬ν΄μ κ³μ λ°νμμλ¬κ° λλ κ²μ΄μλ€. ν... λ€μμλ μ‘°μ¬νκ³ μ½μ§νμ§ λ§μ ^γ
^
λ€λ₯Έ λ΅
μ°μ μμ νλ₯Ό μ΄μ©ν νμ΄λ°©λ²μ λ΄€λλ°, κ΅μ₯ν νΈν΄λ³΄μΈλ€! μ λ ¬μ μλμΌλ‘ ν΄μ£Όλ 컨ν μ΄λλ₯Ό μ΄μ©νλ κ²μ΄ μ’μ κ² κ°λ€.
'Algorithm λ¬Έμ > BOJ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[c++] BOJ 9251λ² :: LCS (νμ΄ λ° μ€λͺ + λ λμ μ½λ) (0) | 2020.04.18 |
---|---|
[c++] BOJ 1149λ² :: RGB거리 (0) | 2020.04.16 |
[c++] BOJ 1038λ² :: κ°μνλ μ (0) | 2020.04.05 |
[c++] BOJ 15961λ² :: νμ μ΄λ°₯ (0) | 2020.04.02 |
[c++] λ°±μ€ 18809λ² : Gaaaaaaaaaarden (0) | 2020.03.26 |
Comment