diff --git a/05/14235.c++ b/05/14235.c++ new file mode 100644 index 0000000..e4b1bce --- /dev/null +++ b/05/14235.c++ @@ -0,0 +1,40 @@ +#include +#include + +using namespace std; + +//산타가 가지고 있는 선물을 가치가 큰 순으로 아이들에게 주기 때문에 priority queue의 Max heap을 사용한다. + +int main() +{ + ios::sync_with_stdio(false); + cin.tie(NULL); cout.tie(NULL); + + priority_queue pq; //산타가 가장 큰 선물 순서대로 주므로, MAX Heap사용 + + int n; + cin >> n; + + while(n--){ + int a; + cin >> a; + + if(a==0){ //아이들에게 선물 줄때 + if(pq.empty()) cout << -1 << "\n"; //선물 없음 + else { //가장 큰 선물 출력 후 삭제 + cout << pq.top() << "\n"; + pq.pop(); + } + } + else{ //거점지에 들렀을때 + while(a--){ + int present; + cin >> present; + + pq.push(present); //선물 가치 pq에 저장 + } + } + } + + return 0; +} \ No newline at end of file diff --git a/05/2075.c++ b/05/2075.c++ new file mode 100644 index 0000000..d069de1 --- /dev/null +++ b/05/2075.c++ @@ -0,0 +1,32 @@ +#include +#include + +using namespace std; + +//n개의 수만큼 입력 받을 때마다 pop을 하여 가장 작은 수를 없앤다. +//priority queue를 사용할 것이기 때문에 min heap으로 만들자. +//priority_queue, greate> pq //min heap + +int main() +{ + ios::sync_with_stdio(false); + cin.tie(NULL); cout.tie(NULL); + + priority_queue, greater> pq; //min heap + int n; + cin >> n; + + for(int i=0;i> a; + + pq.push(a); + if(pq.size()>n){ //pq의 크기가 n보다 커질 때마다 pop + pq.pop(); + } + } + + cout << pq.top(); + + return 0; +} \ No newline at end of file diff --git a/05/2607.c++ b/05/2607.c++ new file mode 100644 index 0000000..03a33ba --- /dev/null +++ b/05/2607.c++ @@ -0,0 +1,55 @@ +#include +#include +#include + +using namespace std; + +//각 단어의 알파벳 빈도수를 vector에 저장한 후, 빈도수를 비교하여 비슷한 단어를 판별한다. + +const int WORD = 26; + +void countFreq(string s, vector& v){ //알파벳 빈도수 계산 + for(int i=0;i a, vector b){ + int cnt=0; + for(int i=0;i> n; + + string a; + cin >> a; + vector a_v(WORD,0); + countFreq(a,a_v); + + int ans=0; + for(int i=0;i> b; + vector b_v(WORD,0); + countFreq(b,b_v); + + int cnt = cmpFreq(a_v,b_v); + if(cnt==0||cnt==1||cnt==2&&a.length()==b.length()) ans++; + //빈도수의 차가 0, 1 또는 2인데 길이가 같을때(하나를 바꾸면 같은 경우) 비슷한 단어 + } + + cout << ans; + return 0; +} \ No newline at end of file