인프런 커뮤니티 질문&답변
질문있습니다.
해결된 질문
작성
·
203
0
37번 Least Recently Used (삽입정렬 코드 스타일 : 카카오
문제에서 코드를 다음과 같이 작성해보았는데 제대로 작동하지 않습니다. 어디서 잘못된 것인가요?
#include<stdio.h>
#include<vector>
using namespace std;
int main(){
freopen("input.txt", "rt", stdin);
int s, n, i, k, pos;
scanf("%d %d", &s, &n);
vector<int> c(s);
vector<int> d(n);
for(i=0; i<n; i++){
scanf("%d", &d[i]);
}
for(i=0; i<n; i++){
pos=-1;
for(k=0; k<s; i++){
if(c[k]==d[i]){
pos=k;
break;
}
}
if(pos==-1){
for(k=s-1; k>=1; k--) c[k]=c[k-1];
}
else{
for(k=pos; k>=1; k--) c[k]=c[k-1];
}
c[k]=d[i];
}
for(i=0; i<s; i++){
printf("%d ", c[i]);
}
return 0;
}
퀴즈
선택 정렬(Selection Sort) 알고리즘은 각 단계에서 어떤 작업을 수행하여 배열을 정렬하나요?
인접한 두 요소를 비교하여 필요시 교환합니다.
정렬되지 않은 부분에서 가장 작은(또는 큰) 값을 찾아 정렬된 부분의 올바른 위치로 옮깁니다.
현재 요소를 이미 정렬된 부분 배열의 적절한 위치에 삽입합니다.
배열을 분할하고 각 부분을 재귀적으로 정렬한 후 병합합니다.





