문제 해결/BaekJoon

[백준] [C++] 2693번 N번째 큰 수

WSLim_97 2023. 1. 12. 20:42
반응형

https://www.acmicpc.net/problem/2693

 

2693번: N번째 큰 수

첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 배열 A의 원소 10개가 공백으로 구분되어 주어진다. 이 원소는 1보다 크거나 같고, 1,000

www.acmicpc.net


코드

#include <iostream>
using namespace std;

void Sort(int arr[], int count);

const int COUNT = 10;

int main()
{
	int n, input;
	int arr[COUNT] = { };
	cin >> n;

	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < COUNT; j++)
		{
			cin >> input;
			arr[j] = input;
		}
		Sort(arr, COUNT);
		cout << arr[2] << endl;
	}

	return 0;
}

void Sort(int arr[], int count)
{
	for (int i = 0; i < count; i++)
	{
		int max = -1, maxIndex = 0;
		for (int j = i + 1; j < count; j++)
		{
			if (max < arr[j])
			{
				max = arr[j];
				maxIndex = j;
			}

			if (j == count - 1 && arr[i] < arr[maxIndex])
			{
				int temp = arr[i];
				arr[i] = arr[maxIndex];
				arr[maxIndex] = temp;
			}
		}
	}
}

풀이

10개의 수를 입력했을 때 그 수 중 3번째로 큰 수를 출력하는 문제이다.

 

배열에 값을 입력받은 후 Sort 함수를 사용해 내림차순으로 정렬한 뒤 3번째 큰 수를 출력하였다.

반응형