BOJ 8979. μ¬λ¦Όν½
πββοΈ[Silver V] μ¬λ¦Όν½ - 8979
μ±λ₯ μμ½
λ©λͺ¨λ¦¬: 2156 KB, μκ°: 0 ms
λΆλ₯
ꡬν, μ λ ¬
μ μΆ μΌμ
2023λ 12μ 26μΌ 15:29:55
λ¬Έμ μ€λͺ
μ¬λ¦Όν½μ μ°Έκ°μ μμκ° μκΈ°μ 곡μμ μΌλ‘λ κ΅κ°κ° μμλ₯Ό μ νμ§ μλλ€. κ·Έλ¬λ, λ§μ μ¬λλ€μ΄ μμ μ κ΅κ°κ° μΌλ§λ μ νλμ§μ κ΄μ¬μ΄ λ§κΈ° λλ¬Έμ λΉκ³΅μμ μΌλ‘λ κ΅κ°κ° μμλ₯Ό μ νκ³ μλ€. λ λλΌκ° κ°κ° μ»μ κΈ, μ, λλ©λ¬ μκ° μ£Όμ΄μ§λ©΄, λ³΄ν΅ λ€μ κ·μΉμ λ°λΌ μ΄λ λλΌκ° λ μνλμ§ κ²°μ νλ€.
- κΈλ©λ¬ μκ° λ λ§μ λλΌ
- κΈλ©λ¬ μκ° κ°μΌλ©΄, μλ©λ¬ μκ° λ λ§μ λλΌ
- κΈ, μλ©λ¬ μκ° λͺ¨λ κ°μΌλ©΄, λλ©λ¬ μκ° λ λ§μ λλΌ
κ° κ΅κ°λ 1λΆν° N μ¬μ΄μ μ μλ‘ ννλλ€. ν κ΅κ°μ λ±μλ (μμ λ³΄λ€ λ μν λλΌ μ) + 1λ‘ μ μλλ€. λ§μ½ λ λλΌκ° κΈ, μ, λλ©λ¬ μκ° λͺ¨λ κ°λ€λ©΄ λ λλΌμ λ±μλ κ°λ€. μλ₯Ό λ€μ΄, 1λ² κ΅κ°κ° κΈλ©λ¬ 1κ°, μλ©λ¬ 1κ°λ₯Ό μ»μκ³ , 2λ² κ΅κ°μ 3λ² κ΅κ°κ° λͺ¨λ μλ©λ¬ 1κ°λ₯Ό μ»μμΌλ©°, 4λ² κ΅κ°λ λ©λ¬μ μ»μ§ λͺ»νμλ€λ©΄, 1λ² κ΅κ°κ° 1λ±, 2λ² κ΅κ°μ 3λ² κ΅κ°κ° 곡λ 2λ±, 4λ² κ΅κ°κ° 4λ±μ΄ λλ€. μ΄ κ²½μ° 3λ±μ μλ€.
κ° κ΅κ°μ κΈ, μ, λλ©λ¬ μ 보λ₯Ό μ λ ₯λ°μμ, μ΄λ κ΅κ°κ° λͺ λ±μ νλμ§ μλ €μ£Όλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
μ λ ₯μ 첫 μ€μ κ΅κ°μ μ N(1 β€ N β€ 1,000)κ³Ό λ±μλ₯Ό μκ³ μΆμ κ΅κ° K(1 β€ K β€ N)κ° λΉμΉΈμ μ¬μ΄μ λκ³ μ£Όμ΄μ§λ€. κ° κ΅κ°λ 1λΆν° N μ¬μ΄μ μ μλ‘ ννλλ€. μ΄ν Nκ°μ κ° μ€μλ μ°¨λ‘λλ‘ κ° κ΅κ°λ₯Ό λνλ΄λ μ μμ μ΄ κ΅κ°κ° μ»μ κΈ, μ, λλ©λ¬μ μκ° λΉμΉΈμ μ¬μ΄μ λκ³ μ£Όμ΄μ§λ€. μ 체 λ©λ¬ μμ μ΄ν©μ 1,000,000 μ΄νμ΄λ€.
μΆλ ₯
μΆλ ₯μ λ¨ ν μ€μ΄λ©°, μ λ ₯λ°μ κ΅κ° Kμ λ±μλ₯Ό νλμ μ μλ‘ μΆλ ₯νλ€. λ±μλ λ°λμ λ¬Έμ μμ μ μλ λ°©μμ λ°λΌμΌ νλ€.
πνμ΄
λλ κ° λλΌλ₯Ό κ΅¬μ‘°μ²΄λ‘ λ§λ€μ΄μ νμλ€.
struct country
{
int idx;
int gold;
int silver;
int bronze;
};
λλΌλ€μ μ 보λ₯Ό λ΄μ λ°°μ΄μ λ§λ€κ³ κ° μ 보λ€μ λ°°μ΄μ μ±μμ€κ³Ό λμμ kμ κ°μ κ²½μ°λ λ°λ‘ μ 보λ₯Ό λΉΌλμλ€.
κ·Έλ¦¬κ³ λ€μ λ°°μ΄μ μννλ©΄μ λ±μ κ³μ°μ 쑰건μ λ§μΆ°νλ€.
vector<country> vec;
int n, k;
void solve()
{
cin >> n >> k;
vec = vector<country>(n + 1);
int idx, g, s, b, pos = 0, res = 1;
for (int i = 0; i < n; ++i)
{
cin >> vec[i].idx >> vec[i].gold >> vec[i].silver >> vec[i].bronze;
if (vec[i].idx == k)
pos = i;
}
for (int i = 0; i < n; ++i)
{
if (vec[i].gold > vec[pos].gold)
{
res++;
}
else if (vec[i].gold == vec[pos].gold && vec[i].silver > vec[pos].silver)
{
res++;
}
else if (vec[i].gold == vec[pos].gold && vec[i].silver == vec[pos].silver && vec[i].bronze > vec[pos].bronze)
{
res++;
}
}
cout << res;
}
μλΈν μ€ν¬μ΄κΈΈλ 100μ μ΄ λμ¬κΉ μΆμλλ° κ·Έλ₯ λ°λ‘ 100μ μ΄ λμλ€.
πμ 체 μ½λ
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include<iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
struct country
{
int idx;
int gold;
int silver;
int bronze;
};
vector<country> vec;
int n, k;
void solve()
{
cin >> n >> k;
vec = vector<country>(n + 1);
int idx, g, s, b, pos = 0, res = 1;
for (int i = 0; i < n; ++i)
{
cin >> vec[i].idx >> vec[i].gold >> vec[i].silver >> vec[i].bronze;
if (vec[i].idx == k)
pos = i;
}
for (int i = 0; i < n; ++i)
{
if (vec[i].gold > vec[pos].gold)
{
res++;
}
else if (vec[i].gold == vec[pos].gold && vec[i].silver > vec[pos].silver)
{
res++;
}
else if (vec[i].gold == vec[pos].gold && vec[i].silver == vec[pos].silver && vec[i].bronze > vec[pos].bronze)
{
res++;
}
}
cout << res;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
//freopen("input.txt", "rt", stdin);
solve();
return 0;
}