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

it 취업을 위한 알고리즘 문제 풀이 입문 (With C/C++) 25. 석차 구하기

dubu0721 2024. 7. 5. 20:58

[기억할 내용들]

  1. 문제를 너무 어렵게 생각해서 풀이 시간이 오래 걸렸다. 쉬운 문제인데 왜 그랬는지 모르겠다. 
  2. 그래도 생각할 시간을 충분히 가져서 내 기준 괜찮은 코드가 작성되었다.

 

[나의 코드]

#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);
	vector<int> grade(n);

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

	for (int i = 0; i < n; i++)
		grade[i] = 1;

	for (int i = 1; i < n; i++) {
		for (int j = 0; j < i; j++) {
			if (table[i] > table[j])
				grade[j]++;
			else if (table[i] < table[j])
				grade[i]++;
		}
	}

	for (int i = 0; i < grade.size(); i++)
		cout << grade[i] << " ";
	cout << "\n";

	return 0;
}

 

 

[강의 코드]

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

using namespace std;

int main() {
	int i, j, a[200], b[200], n;
	scanf_s("%d", &n);

	for (i = 1; i <= n; i++) {
		scanf_s("%d", &a[i]);
		b[i] = 1;
	}
	for (i = 1; i <= n; i++) {
		for (j = 1; j <= n; j++) {
			if (a[j] > a[i]) b[i]++;
		}
	}
	for (i = 1; i <= n; i++)
		printf("%d ", b[i]);

	return 0;
}

 

 

[의견]

음.. 전반적인 풀이 방식은 비슷하다고 생각된다. 오늘 피곤해서 그런가 머리가 잘 안 돌아간다. 그래도 열심히 .. 세문제가 더 남았다. 열심히 해보자!!!!