[백준/BOJ]17509. And the Winner Is... Ourselves! [Silver 5]

jychan99·2021년 8월 25일
0
post-thumbnail
  1. And the Winner Is... Ourselves!

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

code

#include <stdio.h>
void QuickSort(int* arr, int start, int end)
{
	if (start >= end)
		return;
	int piv = start;
	int left = start + 1, right = end, temp;
	while (left <= right)
	{
		while (left <= end && arr[left] <= arr[piv])
			left++;
		while (right > start && arr[right] >= arr[piv])
			right--;
		if (left > right)
		{
			temp = arr[right];
			arr[right] = arr[piv];
			arr[piv] = temp;
		}
		else
		{
			temp = arr[left];
			arr[left] = arr[right];
			arr[right] = temp;
		}
	}
	QuickSort(arr, start, right - 1);
	QuickSort(arr, right + 1, end);
}
int main()
{
	int i, D[12] = { NULL }, V[12] = { NULL }, verdicts = 0, sum = 0, result = 0;
	for (i = 0; i < 11; i++)
	{
		scanf("%d %d", &D[i], &V[i]);
		verdicts += V[i];
	}
	QuickSort(D, 0, 10);
	for (i = 0; i < 11; i++)
	{
		sum += D[i];
		result += sum;
	}
	result += 20 * verdicts;
	printf("%d", result);
	return 0;
}

나는 처음에 문제는 이해가 되는데 예제출력이 왜 그렇게 나오는지가 의문이여서 구글링을 했는데 정~말 친절하게 잘설명해주는 블로그가 있었다. 그거 보자마자 이해가 되서 한번에 풀 수 있었다. 덤으로 저번에 작은수내기에서 쓴 퀵소트도 한번 다시 복습하는 계기가 되었다.
https://tejavascript.tistory.com/8

나는 입력받을때 Di가 각각문제인줄알고 10 + 10+ 20+ 20+... 이렇게 했었는데

알고보니 10+20+40+60+... 이런식으로 더하는 거더라......

tejavascript님 정말 감사합니다..!

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

0개의 댓글