글적글적 잡담 문자열 뒤집기 저는 요렇게! 2009/05/20 22:45 by 하뉴

우리나라의 컴공 교육에 대한 생각이 들게 하는 면접

#include <stdio.h>
#include <stdlib.h> // func system()

void Reverse(char* szStr);

int main(int agrc,char **argv)
{

    char szStr1[] = "abcde";    // 홀수 개
    char szStr2[] = "abcdef";   // 짝수 개
   
    Reverse(szStr1);
    printf("%s\n",szStr1); //결과 edcba
   
    Reverse(szStr2);
    printf("%s\n",szStr2); //결과 fedcba
   
    system("pause");
    return 0;
}

void Reverse(char* szStr)
{
    // 구현하시오
    char *pA    = szStr;
    char *pB    = szStr;
    while(*++pB); --pB;
    while( pB > pA )
    {
        *pA     = *pA ^ *pB;
        *pB     = *pB ^ *pA;
        *pA     = *pA ^ *pB;
        pA++;
        pB--;
    }
}

스왑시, 임시변수없이 해보았습니다~
ㅜㅜ 덧글로 하니, 코딩 습관상 너무 길어보이는게 민폐같아서 트랙백합니다.


덧) 아래로는 잡설이옵니다.

소스를 자꾸 보게되네요. 먼가 더 기괴한게 없을까하는,...

그리고 개인적인 강박이지만
         if(bTemp) Run();
이라는 코드를 보면
         if(bTemp)
        {
                Run();
        }
으로 꼭, 괄호까지 해주는지라,    
       while(*++pB); --pB;
도 그렇게 풀어주고싶은데 그러면 소스가 길어보이고하니, 아예 while(~); 에서
어쩔수없을까 계속 보게되네요. 우아 L5 갈것같아 < 이거가지고?!



트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://hanyuu.egloos.com/tb/4961980 [도움말]

덧글

  • utena1002 2009/05/21 10:41 # 답글

    이.....이건 뭐죠?? 아주 오래전에 이 비스무리한 것을 배운것도 같고.....아닌것도 같고......
    프로그램쪽 공부하시나 봐요 ㅜㅜ
  • 하뉴 2009/05/21 12:51 #

    c언어이옵니다. 랄까, 프로그램쪽 과는 아니고 전자전기과입니다~
    그래서 카테고리중에 『우리들은 전자과(わたし達は電子課)』 도 있답니다 >ㅅ<v
  • utena1002 2009/05/21 13:00 #

    그...그렇군요. 제가 한글 아닌 다른 글씨들은 처음에는 잘 안봐놔서 ㅜㅜ
    전기전자과에서도....C언어를 배우는군요. ^^ 왠지 잘 하실것같은 느낌이...
    가만생각해보니 전 전공과목에도 프로그램언어가 있었긴 한데....프로그램이라면 쳐다도 안본다죠.
  • 하뉴 2009/05/21 13:05 #

    네입 1학년때 C,C++를 배우기는 합니다만, 대학 들어오기전부터
    관심이 많아서, 홀로 공부하기도했습니다~
  • 리스 2009/05/21 10:57 # 답글

    안녕하세요. 지나가던 뉴비입니다. 안그래도 지금 IT밸리에 뒤집기 코드가 유행(?) 하길래 관심있게 보고 있는데.. 멋지게 잘 처리하셨군요 ㅎㅎ

    위에 쓰신 세줄짜리 XOR연산은 *pA ^= *pB ^= *pA ^= *pB; 요렇게 한줄로 처리도 가능해서 사족을 달고 가봅니다. 근데 저는 전에 이렇게 한번 썼다가 가독성 떨어진다고 한소리 들었었죠 ㅎㅎ
  • 하뉴 2009/05/21 13:01 #

    오오, 생각해보니, 한줄로 표현가능한 부분이었군요. 감사합니다 >ㅅ<b
    저도 생각하기에, 제 포스트의 소스가 가독성은 떨어집니다.
    제 생각에는 위방법은 뭐 한문제에 몇개의 변수만 쓰시오
    라던가 그런 ACM(?) 같은 곳에서 쓸만한 솔루션일것같습니다.
※ 로그인 사용자만 덧글을 남길 수 있습니다.