알고리즘 문제풀기/인프런 강의 정답

33. 3등의 성적은? (정렬 응용) [정렬 & 이분탐색(결정알고리즘) & 투포인트 알고리즘 & 스택]

코다람쥐 2022. 4. 7. 21:56

나의정답.

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>

using namespace std;

int main(int argc, char** argv) {
	//freopen("input.txt", "rt", stdin);

	int n, idx, tmp, cnt = 1, target = 3;
	scanf("%d", &n);
	
	vector<int> a(n);
	
	for(int i = 0 ; i < n - 1 ; i++){
		scanf("%d", &a[i]);
	}
	
	for(int i = 0 ; i < n ; i++){
		idx = i;
		for(int j = i+1 ; j < n; j++){
			if(a[idx] < a[j]) idx = j;
		}
		tmp = a[idx];
		a[idx] = a[i];
		a[i] = tmp;
	}
		
	for(int i = 1 ; i < n ; i++){
		if(a[i - 1] > a[i])
			cnt++;
			
		if(cnt == target){
			printf("%d", a[i]);
			break;			
		}
	}
}

 

33번문제는 32번의 응용이므로 32번은 제외함.