지하철 타려고 역에서 기다리는 시간에 짬나면 주변에 아무 무선랜이나 잡아서 아이팟 터치로 블로그질을 하는데, 자주 가는곳에서 깜짝 놀랄만한 글을 읽었네요;; 대학원생 분이 reverse를 저렇게 풀었다는 사실에.. 저도 면접때 저런일을 겪으면 어떻하나 생각이 듭니다. 제 자신의 실력이 개판인지라...

어쨌든 지하철 타고 이동중에 아이폰으로 대충 적어놓고, 다시 자리잡고 몇분만에 코딩해봤는데 에러;; 잠깐 틀린부분이 뭔가 생각해보고 고쳐보니 잘 됩니다. 곰곰히 생각해보니 면접에서 보는건 이걸 얼마나 빨리 해답을 찾는 문제가 아니라(물론 정답도 중요하겠지만;;) 해답을 찾는 과정과 방법을 보여주는지 일듯. 역시 기본기가 중요!!! 열심히 공부해야겠다...

reverse는 여러가지 방법이 있는데 저도 적어봅니다. 근데 이게 처음으로 c언어에 관해서 쓰는거네요 –_-;;

   1: #include <stdio.h>
   2:  
   3: int strlength(char* str)
   4: {
   5:     int i = 0;
   6:  
   7:     while((*str)) {
   8:         str++;
   9:         i++;
  10:     }
  11:     return i;
  12: }
  13:  
  14: void swap(char* ch1, char* ch2)
  15: {
  16:     char temp = (*ch1);
  17:     (*ch1) = (*ch2);
  18:     (*ch2) = temp;
  19: }
  20:  
  21: void reverse(char* str)
  22: {
  23:     int length = strlength(str);
  24:     int half = length/2;
  25:     
  26:     for(int i=0; i<half; i++) {
  27:         swap(str+i, str+length-1);    // 이부분에서 에러였음!
  28:         length--;
  29:     }
  30: }
  31:  
  32: void main()
  33: {
  34:     char str[] = "abcdef";
  35:     printf("%s \n", str);
  36:     reverse(str);
  37:     printf("%s \n", str);
  38: }
Posted by 극악해골