우리나라의 컴공 교육에 대한 생각이 들게 하는 면접
어째 글 내용과는 상관없는 문제에 대한 답을 트랙백하네요
void Swap(char* lhs, char* rhs)
{
char temp = *lhs;
*lhs = *rhs; *rhs = temp;
}
void reverse(char* str)
{
UINT nLength = ::strlen(str);
UINT endIndex = nLength/2;
for ( UINT index = 0 ; index < endIndex ; ++index ) {
Swap(&str[index], &str[nLength-index-1]);
}
}
int _tmain(int argc, _TCHAR* argv[])
{
char str[] = "abcde";
reverse(str);
printf("%s\n", str);
return 0;
}
음.. 저런 류의 문제는 Swap으로 가능하다는 것이 정설인 듯.
예전의 나였다면 Buffer를 만들고 끝부분 부터 집어 넣었을 텐데요.
보자마자 Swap으로 바꿔버리면 오케이겠넹. 하는데, 예전의 나라면 못풀..었을까?
뭐, 예외 처리라든지 등등은 생략했기 때문에 손코딩으로 이만큼 할 수 있는 것도 나름 발전인...가?
..STL로 쓰면 더 빠르게 되지 않을까 하지만 C라고 했으니 넘어갑시다. 전 STL을 사랑해요.
라지만, 아직 정진이 많이 필요합니다.
트랙백 되어 있는 곳에서 좋은 책 추천이 많이 있네요. 사봐야 할 듯.




덧글