강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

Louis Kim님의 프로필 이미지
Louis Kim

작성한 질문수

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

33. 3등의 성적은? (정렬 응용)

간단한 질문드립니다 !

작성

·

226

0

안녕하세요 강사님, 유익한 강의 즐겨보고 있습니다!
이번 강의 관련해서 간단한 질문이 하나 있는데요,
제 아래 코드와 같이 정렬 for문안에서 3등 점수를 찾는순간 출력하고 프로그램을 종료하도록 짜면은 3등 이외에 등수들을 정렬하는 시간을 아낄 수 있지 않을까요 ?
 
#include <iostream>
using namespace std;
#include <vector>
int main ()
{
freopen("input.txt", "r", stdin);
int n = 0;
int temp = 0;
int indx = 0;
int order = 1;
cin >> n;
vector <int> a (n);
for (int i = 0; i < n; i++)
{
    cin >> a [i];
}

for (int i = 0; i< n-1; i++)
{
    temp = a[i];
    indx = i;
    for (int j = i+1; j < n; j++)
    {
        if (a[j] > a [indx])
        {
            indx = j;
        }
    }
    a[i] = a[indx];
    a[indx] = temp;
    if (i!=0 && (a[i] != a[i-1]))
    {
        order ++;
        if (order == 3)
        {
            cout << "third place is " << a[i] << endl;
            return 0;
        }
    }
}

    return 0;
}

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

네. 좋은 코드입니다. 조언주셔서 감사합니다.

Louis Kim님의 프로필 이미지
Louis Kim

작성한 질문수

질문하기