지하철 타려고 역에서 기다리는 시간에 짬나면 주변에 아무 무선랜이나 잡아서 아이팟 터치로 블로그질을 하는데, 자주 가는곳에서 깜짝 놀랄만한 글을 읽었네요;; 대학원생 분이 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: }
