반응형

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

 

2693번: N번째 큰 수

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

www.acmicpc.net

문제

배열 A가 주어졌을 때, N번째 큰 값을 출력하는 프로그램을 작성하시오.

배열 A의 크기는 항상 10이고, 자연수만 가지고 있다. N은 항상 3이다.

입력

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

출력

각 테스트 케이스에 대해 한 줄에 하나씩 배열 A에서 3번째 큰 값을 출력한다.


풀이

입력받은 배열을 내림차순으로 정렬해주고 3번째 값을 출력한다

 

파이썬으로 풀면 매매애ㅐㅐㅐㅐㅐㅐㅐ우 쉽게 풀 수 있는 문제였겠지만,,, 아직 배열을 받는게 어색해서 많은 시간 까지는 아니어두 조금 시간이 걸린 문제... 빨리 C++에 익숙해지면 좋겠다

코드

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

int main()
{
	int T;
	cin >> T;

	//num을 입력받아서 배열에 넣기
	for (int tc = 0; tc < T; tc++)
	{	
		vector<int>arr;
		for (int i = 0; i < 10; i++)
		{
			int num;
			cin >> num;
			arr.push_back(num);
		}
		//내림차순 정렬
		//임시로 숫자를 넣을 변수
		int temp;
		for (int i = 0; i < 10; i++)
		{
			for (int j = i + 1; j < 10; j++)
			{
				if (arr[i] < arr[j])
				{
					temp = arr[i];
					arr[i] = arr[j];
					arr[j] = temp;
				}
			}

		}
		//count는 0부터 시작하기 때문에 3번로 큰 수의 인덱스는 2
		cout << arr[2] << '\n';
	}

}

 

반응형

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

[백준] 2506. 점수계산 : C++  (0) 2022.02.10
[백준] 2501. 약수 구하기 : C++  (0) 2022.02.09
[백준] 1026. 보물 : C++  (0) 2022.02.05
[백준] 4101. 크냐? : C++  (0) 2022.02.04
[백준] 10569. 다면체 : C++  (0) 2022.02.02

+ Recent posts