강의

멘토링

로드맵

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

최정은님의 프로필 이미지
최정은

작성한 질문수

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

37. Least Recently Used (삽입정렬 코드 스타일 )

질문있습니다.

해결된 질문

작성

·

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;

}

퀴즈

57%나 틀려요. 한번 도전해보세요!

선택 정렬(Selection Sort) 알고리즘은 각 단계에서 어떤 작업을 수행하여 배열을 정렬하나요?

인접한 두 요소를 비교하여 필요시 교환합니다.

정렬되지 않은 부분에서 가장 작은(또는 큰) 값을 찾아 정렬된 부분의 올바른 위치로 옮깁니다.

현재 요소를 이미 정렬된 부분 배열의 적절한 위치에 삽입합니다.

배열을 분할하고 각 부분을 재귀적으로 정렬한 후 병합합니다.

답변 1

1

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

안녕하세요^^

코드오타입니다.

for(k=0; k<s; i++){

최정은님의 프로필 이미지
최정은

작성한 질문수

질문하기