[백준/BOJ] 23845. 마트료시카 [Gold 3]

jychan99·2022년 6월 27일
0
post-thumbnail
  1. 마트료시카

문제출처 : https://www.acmicpc.net/problem/23845

code

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int dollcount[200001];
int main()
{
	long long N, Q = 0, cnt = 0;
	long long answer = 0;
	cin >> N;
	vector<int> matryoshka(N);
	for (int i = 0; i < N; i++)
	{
		cin >> matryoshka[i];
		dollcount[matryoshka[i]]++;
	}
	sort(matryoshka.begin(), matryoshka.end());

	for (int i = 0; i < N; i++)
	{
		if (dollcount[matryoshka[i]] >= 1)
		{
			dollcount[matryoshka[i]]--;
			Q = matryoshka[i];
			cnt = 1;
			for (int j = matryoshka[i] + 1;; j++)
			{
				if (dollcount[j] >= 1)
				{
					Q = j;
					dollcount[j]--;
					cnt++;
				}
				else
				{
					answer += Q * cnt;
					break;
				}
			}
		}
	}
	
	cout << answer;

	return 0;
}

나는 내림차순으로 해서 풀려고했는데, 블로그보고 오름차순으로 순서대로 하려니까 쉽게되더라....

profile
내가 지금 두려워 하고 있는 일이 바로 내가 지금 해야 할 일이다. 🐥

0개의 댓글