강의

멘토링

로드맵

Inflearn Community Q&A

min062740778's profile image
min062740778

asked

Introduction to Algorithm Problem Solving for IT Employment (with C/C++): Coding Test Preparation

25. Find the ranking (Brute Force)

25번 문제 질문

Written on

·

331

0

시간 제한도 없고 입력의 개수가 적어서 이중for문으로 작성하셨는데

 

문제를 풀다보니 이중 for문은 지양해야겠다는 생각이 들어 시간이 오래 걸리더라도 아래와 같이 짰습니다

코딩테스트 문제들은 제한 시간이 제시되고 그에 맞춰서 편하게 이중 for문으로 짜면 되는 것이죠?

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <stdio.h>
#include <vector>
//컴파일 f9 실행 f10 (dev c++)
using namespace std;



int main()
{
	
	int n = 0;

	cin >> n;

	vector<int> a(101);
	vector<int> b(n+1);
	int temp = 0;
	int rank = 1;
	
	for (int i = 1; i <= n; i++)
	{
		cin >> b[i];
		a[b[i]]++;

	}

	for (int i = 100; i >= 1; i--)
	{
		if (a[i] != 0)
		{
		
			temp = a[i];
			a[i] = rank;
			rank = rank + temp;
			
	
		}
	}

	for (int i = 1; i <= n; i++)
	{
		cout << a[b[i]]<< " ";
	}
	return 0;
}
코테 준비 같이 해요! C++

Answer 1

1

codingcamp님의 프로필 이미지
codingcamp
Instructor

안녕하세요^^

N제한의 크기를 보고 O(n)으로 해야 할지, 아니면 O(n^2)으로 해도 될지 판단합니다. 대충 N제한이 100,000이상이면 효율성 테스트를 한다고 생각 하시면 좋겠습니다.

min062740778's profile image
min062740778

asked

Ask a question