• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

C++를 사용하지 않고 문제를 해결하고싶습니다.

21.08.20 15:52 작성 조회수 120

0

문제에서 sort함수를 이용하여 정렬을 해주는데

만약 C++ 함수들을 사용하지 않고 C로만 문제를 해결하려고 하는데 방법이 있을까요?

#include<stdio.h>

#include<math.h>

#include <stdlib.h> 

#define MAX(x, y) x > y ? x : y

int main(void)

{

int s,n,m,a,i,j,pos=0;

scanf("%d",&n);

int *arr=(int*)malloc(sizeof(int)*n);

for(i=0;i<n;i++)

{

scanf("%d",&arr[i]);

}

scanf("%d",&m);

int *brr=(int*)malloc(sizeof(int)*m);

for(i=0;i<m;i++)

{

scanf("%d",&brr[i]);

}

int *sum=(int*)malloc(sizeof(int)*MAX(n,m));

int left=0,right=0;

while(left<n && right<m)

{

if(arr[left]==brr[right])

{

sum[pos++]=arr[left++];

right++;

}

else if(arr[left]<brr[right])

{

left++;

}

else if(arr[left]>brr[right])

{

right++;

}

}

for(i=0;i<pos;i++)

{

printf("%d ",sum[i]);

}

free(arr);

free(brr);

free(sum);

return 0;

}

저는 이 부분에서 정렬을 하지못하여 막혀있습니다.

답변 1

답변을 작성해보세요.

0

안녕하세요^^

이 문제에서 two pointers 알고리즘을 사용하려면 기본적으로 자료가 정렬이 되어야 합니다.