![article thumbnail image](https://blog.kakaocdn.net/dn/bb7csP/btqJCSMtecj/Uw6oWzV7IDOVxhJ3tRLCjK/img.png)
반응형
코드
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(void)
{
int n, temp;
cin >> n;
vector<int> vInt(n);
for (int i = 0; i < n; ++i)
cin >> vInt[i];
for (int i = 0; i < n; ++i)
{
for(int j = i + 1; j < n; ++j)
{
if(vInt[i] > vInt[j])
{
temp = vInt[i];
vInt[i] = vInt[j];
vInt[j] = temp;
}
}
}
for (int i = 0; i < n; ++i)
{
cout << vInt[i] << " ";
}
return 0;
}
출력 결과
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(void)
{
int n, temp, idx;
cin >> n;
vector<int> vInt(n);
for (int i = 0; i < n; ++i)
cin >> vInt[i];
for (int i = 0; i < n; ++i)
{
idx = i;
for(int j = i + 1; j < n; ++j)
{
if (vInt[j] < vInt[idx]) idx = j;
}
// 가장 작은 값과 swap 처리
temp = vInt[i];
vInt[i] = vInt[idx];
vInt[idx] = temp;
}
for (int i = 0; i < n; ++i)
{
cout << vInt[i] << " ";
}
return 0;
}
j for문에서 swap 처리를 하지 않고, 가장 작은 index를 찾은 후 i for문에서 교환해 주면 연산량이 줄어든다. 😮
해당 포스트는 'it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비' 강의를 수강하며 개인 백업용으로 메모하였습니다.
인프런: https://www.inflearn.com/course/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98#
it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비 - 인프런
알고리즘과 자료구조를 이용해 문제해결력을 기르는게 주 목적입니다. 초급 취업 ・ 이직 프로그래밍 언어 알고리즘 C++ 알고리즘 코딩 테스트 개발자취업 온라인 강의 알고리즘
www.inflearn.com
반응형