Algorithm/백준

[백준] 1427 with C++

nowkoes 2023. 4. 11. 00:00

문제설명


입출력 예제


개념

 2751번과 마찬가지로 우선순위 큐를 이용하면 쉽게 해결할 수 있다. 이전 문제와 다르게 비교자를 less<int>를 이용하면 내림차순으로 정렬된다는 점을 유념하자.


풀이

#include <iostream>
#include <queue>

int main() 
{
	std::priority_queue<int, std::vector<int>, std::less<int>> que;
	std::string str;
	std::cin >> str;

 우선순위 큐를 선언하고, 숫자를 문자열로 받아준다.

 

	for (char c : str)
	{
		que.push(c - '0');
	}

	while (!que.empty())
	{
		std::cout << que.top();
		que.pop();
	}
}

 여기서 문자열로 숫자를 초기화한 이유가 나오는데, 숫자가 한 번에 입력되므로 Range-based for문을 이용해 que에 삽입하면 내림차순으로 쉽게 정렬할 수 있다. 그 후에 que가 빌 때까지 pop을 하면 문제를 해결할 수 있다.

 

총합본

#include <iostream>
#include <queue>

int main() 
{
	std::priority_queue<int, std::vector<int>, std::less<int>> que;
	std::string str;
	std::cin >> str;

	for (char c : str)
	{
		que.push(c - '0');
	}

	while (!que.empty())
	{
		std::cout << que.top();
		que.pop();
	}
}
반응형

'Algorithm > 백준' 카테고리의 다른 글

[백준] 1181 단어 정렬 with C++  (0) 2023.04.13
[백준] 11650 with C++  (0) 2023.04.12
[백준] 2751 with C++  (0) 2023.04.10
[백준] 1929 with C++  (0) 2023.04.06
[백준] 25206 with C++  (0) 2023.04.05