본문 바로가기
모각코/2019 겨울방학

모각코 1회차 결과(19.07.03)

by 매화of사군자 2019. 7. 3.

목표 : dp 공부하고 문제풀기

내가 한 것 : 백준 1251번 문제 풀기

 

1251번 푸는 과정

1. 문자열 나누는 지점 설정

2. 1.을 기준으로 reverse한 문자열들 저장

3. strcmp()로 사전에서 가장 빠른 문자열 찾기

4. 3.을 출력

 

코드

#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
#define STR_SIZE 50

char string[STR_SIZE]; //입력받는 문자열
int length; //입력받은 문자열 길이
char r_string[STR_SIZE][STR_SIZE]; //reverse한 문자열들
int size = 0; //reverse문자열 갯수

void reverse(char *s, int one, int two);
char *min_check(char r_string[][STR_SIZE], char *min);

int main()
{
scanf("%s", string);
length = strlen(string);


int i, j;
for (i = 0; i < length - 1; i++)
{
for (j = i + 1; j < length - 1; j++)
{
reverse(string, i, j);
}
}
char *min = (char*)malloc(sizeof(char)*length + 1);
printf("%s\n",min_check(r_string,min));

free(min);
return 0;
}

void reverse(char *s, int one, int two) //reverse한 문자열들 저장
{
int len = strlen(s);
char *temp = (char *)malloc(sizeof(char)*len);

int i = 0;
int one_1 = one;
while (one_1 > -1)
{
temp[i] = s[one_1--];
i++;
}
int two_2 = two;
while (two_2 > one)
{
temp[i] = s[two_2--];
i++;
}

int len_3 = len - 1;
while (len_3 > two)
{
temp[i] = s[len_3--];
i++;
}

strcpy(r_string[size], temp);
size++;
free(temp);

}

char *min_check(char r_string[][STR_SIZE], char *min) //사전에서 가장 빠른 거 찾기
{
strcpy(min, r_string[0]);

int i;
for (i = 1; i < size; i++)
{
if (strcmp(min, r_string[i]) > 0)
{
min = r_string[i];
}
}

min[length] = '\0';

return min;

}

 

결과 : 런타임 에러

문제점 : visual studio에서는 잘 작동하나 백준에서는 런타임 에러 발생

문제점 관련 공부 할 것 : 동적할당 메모리 관리

'모각코 > 2019 겨울방학' 카테고리의 다른 글

모각코 3회차 결과(19.07.17)  (0) 2019.07.17
모각코 3회차(19.07.17)  (0) 2019.07.17
모각코 2회차 결과(19.07.10)  (0) 2019.07.10
모각코 2회차(19.07.10)  (0) 2019.07.10
모각코 1회차(19.07.03)  (0) 2019.07.03

댓글