[백준/BOJ] 1715. 카드 정렬하기 [Gold 4]

jychan99·2022년 3월 30일
0
post-thumbnail
  1. 카드 정렬하기

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

code

#include <iostream>
#include <queue>
using namespace std;

int main()
{
	long long N, x, temp=0, result = 0;
	priority_queue<int> pq;

	cin >> N;
	for (int i = 0; i < N; i++)
	{
		cin >> x;
		pq.push(-x);
	}

	while (pq.size() != 1)
	{
		temp = 0;
		temp += pq.top();
		pq.pop();
		temp += pq.top();
		pq.pop();
		pq.push(temp);
		result += temp;
	}

	cout << -result;

	return 0;
}

처음에 짯을때코드다

#include <iostream>
#include <queue>
using namespace std;

int main()
{
	int N, x, temp=0, result = 0;
	priority_queue<int> pq;

	cin >> N;
	for (int i = 0; i < N; i++)
	{
		cin >> x;
		pq.push(-x);
	}

	temp = pq.top();
	pq.pop();
	for (int i = 1; i < N; i++)
	{
		temp += pq.top();
		pq.pop();

		result += temp;
	}
	cout << -result;
	return 0;
}

예제문제 바로통과하길래 너무 쉬운거 아닌가 했는데 아니나다를까 틀렸습니다가 떳다.

어디가 문젠지 한참을 고민하다가 질문게시판에서 반례를 봤는데,
4
3
3
3
3
답이 24이어야 한다고 했다.
근데 아무리 생각해봐도 27이 나오는데 어떻게 24가 나오지 고민하다가
3+3 = 6
6+3 = 9
9+3 = 12
해서 27이 아니라,
3+3 = 6
3+3 = 6
6+6 = 12
해서 24가 나오는 로직이였다.

뭔가 뒷통수맞은기분..? 그래도 풀었으면 됐지..

이번학기 21학점에 근로를 신청했더니 백준을 풀 시간이 없다.
뭐만하면 과제해야하고, 뭐만하면 실습연습해야하고, 그리고 데이터베이스랑 운영체제같은 이론실습과목이 약간 빡센것같아서 열심히 복습연습하고있다ㅠㅠ 못따라가면 안되니까
사실 시간없어서 못푼다는거는 핑계임을 익히 알고는 있지만, 어쩔수 없다 ㅠㅠ
이번 년도동안 열심히 해서 플레티넘 찍어야하는데... 한분기당 1티어씩 올리면 가능할것 같긴한데, 골드부터는 좀 빡세네;;;

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

0개의 댓글