게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
좀 더 효율적인 코드는 뭐가 있을까요?
게시물ID : programmer_16366짧은주소 복사하기
작성자 : nipa0711
추천 : 0
조회수 : 840회
댓글수 : 7개
등록시간 : 2016/03/26 02:18:45
A.PNG

1번 케이스 
////////////
I LOVE YOU 를 입력했을때

UOY EVOL I 라고 나오는 것은 상당히 짜기 쉽습니다.





B.PNG

2번 케이스
/////////////
그런데

I LOVE YOU 라고 입력했을때

YOU LOVE I 라고 나오게 하는 것은 

위에 만큼 짜기 쉽지가 않더군요.
















제가 한 경우

1,2 번 케이스 공통

#include <stdio.h>
#include <string.h>

char Reverse(char *input)
{
char c;
int wordSize = strlen(input);

for (int i = 0; i < wordSize/2; i++)
{
c = input[i];
input[i] = input[wordSize-1 - i];
input[wordSize-1 - i] = c;
}

return *input;
}





1번 케이스 메인

int main()
{
char input[100];

printf("입력 : ");
gets_s(input, 100);

printf("출력 : ");

int arrSize = strlen(input);
Reverse(input);
printf("%s", input);
printf("\n");

return 0;
}




2번 케이스 메인

int main()
{
char input[100];

printf("입력 : ");
gets_s(input, 100);
printf("출력 : ");

int arrSize = strlen(input);
Reverse(input);
char *reverseArr = (char *)malloc(sizeof(char)*arrSize); // reverseArr 배열 동적 할당

int last = -1, current = 0;
for (int i = 0; i < arrSize;i++)
{
if (input[i]==' ')
{
if (last == -1)
{
last = 0;
}

int tempArrSize = current - last;
char *temp = (char *)malloc(sizeof(char)*tempArrSize); // temp 배열 동적 할당

for (int j = 0; j < tempArrSize; j++)
{
temp[j] = input[last + j];
}
temp[tempArrSize] = '\0';
Reverse(temp);

for (int j = 0; j < tempArrSize; j++)
{
reverseArr[last+j] = temp[j];
}
reverseArr[i] = ' ';

last = current+1;
}
else if (i == arrSize - 1)
{
int tempArrSize = current+1 - last;
char *temp = (char *)malloc(sizeof(char)*tempArrSize); // temp 배열 동적 할당

for (int j = 0; j < tempArrSize; j++)
{
temp[j] = input[last + j];
}

temp[tempArrSize] = '\0';
Reverse(temp);

for (int j = 0; j < tempArrSize; j++)
{
reverseArr[last + j] = temp[j];
}
reverseArr[arrSize] = '\0';
}
current++;
}

printf("%s\n", reverseArr);

return 0;
}




/////////////////////////

일단 되긴 합니다만, 좀 더 효율적인 방법이 있을텐데,

기억나지는 않네요..
꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호