https://www.acmicpc.net/problem/2750
정말 여러 가지 방법으로 풀 수 있다. 우선순위 큐, 정렬 등등... (아마 set이나 map으로도 가능할 거다)
우선순위 큐는 기본적으로 큰 수부터 pop 하기 때문에 -를 붙여서 넣어주고 -를 붙여서 빼주면 오름차순으로 pop 할 수 있게 된다.
아니면 우선순위 큐 정의할 때 <functional>의 greater를 사용하면 가능하긴 하지만 귀찮으니까 위의 방법을 애용하자.
// 우선순위 큐로 해결하기
#include <cstdio>
#include <queue>
using namespace std;
priority_queue pq;
int main()
{
int n;
scanf("%d", &n);
for (int i = 0, a; i < n; ++i)
{
scanf("%d", &a);
pq.push(-a);
}
for (int i = 0; i < n; ++i)
{
printf("%d\n", -pq.top());
pq.pop();
}
return 0;
}
// 정렬 사용하기
#include <cstdio>
#include <algorithm>
using namespace std;
int main()
{
int n, arr[1001];
scanf("%d", &n);
for (int i = 0; i < n; ++i)
scanf("%d", &arr[i]);
sort(arr, arr + n);
for (int i = 0; i < n; ++i)
printf("%d\n", arr[i]);
return 0;
}
'온라인저지' 카테고리의 다른 글
[BOJ] 2747번: 피보나치 수 (0) | 2018.07.26 |
---|---|
[BOJ] 2562번: 최대값 (0) | 2018.07.26 |
[BOJ] 8393번: 합 (0) | 2018.07.26 |
[BOJ] 2438번: 별찍기 - 1 (0) | 2018.07.26 |
[BOJ] 2439번: 별찍기 - 2 (0) | 2018.07.26 |
[BOJ] 2440번: 별찍기 - 3 (0) | 2018.07.26 |
댓글