알고리즘&자료구조 공부/it 취업을 위한 알고리즘 문제풀이 입문 강의

it 취업을 위한 알고리즘 문제 풀이 입문 (With C/C++) 33. 3등의 성적은?

dubu0721 2024. 7. 8. 17:42

[기억할 내용들]

  1. 오름차순 선택정렬로 배열을 정렬한다.
  2. 정렬된 배열에서 남은 내용들을 구현한다.
  3. 정렬만 하면 쉬운 문제라서 딱히 기억할 만한건 없다.

 

[나의 코드]

#include <iostream>
#include <stdio.h>
#include <string>
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
	ios_base::sync_with_stdio(false);

	int n;
	cin >> n;
	vector<int> table(n);
	for (int i = 0; i < n; i++)
		cin >> table[i];

	for (int i = 0; i < n - 1; i++) {
		int idx = i;

		for (int j = i+1; j < n; j++) {
			if (table[idx] < table[j])
				idx = j;
		}

		int tmp = table[i];
		table[i] = table[idx];
		table[idx] = tmp;
	}

	int cnt = 0;
	int min = 101;
	for (int i = 0; cnt!=3; i++) {
		if (min > table[i]) { 
			min = table[i]; 
			cnt++;
		}
	}
	cout << min << "\n";


	return 0;
}

 

 

[강의 코드]

#include <iostream>
#include <stdio.h>
#include <string>
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
	int n, a[101], i, j, tmp, idx, cnt = 0;
	scanf_s("%d", &n);
	for (i = 0; i < n; i++) {
		scanf_s("%d", &a[i]);
	}

	for (i = 0; i < n - 1; i++) {
		idx = i;
		for (j = i + 1; j < n; j++) {
			if (a[j] > a[idx]) idx = j;
		}
		tmp = a[i];
		a[i] = a[idx];
		a[idx] = tmp;
	}
	for (i = 1; i < n; i++) {
		if (a[i - 1] != a[i]) cnt++;
		if (cnt == 2) {
			printf("%d\n", a[i]);
			break;
		}
	}

	return 0;
}

 

 

[의견]

딱히 의견이 없다. 오늘 공부 끝~~!