오랫만에 남경 출장기를 이어서 쓴다.
명현릉 구경도 잘 했고, 저녁밥도 든든하게 먹었고, 이제 호텔로 돌아왔다.

출장을 오기 전에도 말은 좀 했었지만, 면접을 위한 기술적인 문제를 좀 준비하기로 했다.
나는 면접에 참고하기 위해서 예전에 열심히 공부했었던 Programming Pearls 를 가져갔는데, 거기에 나온 문제 들 중 두 개를 골랐다. 홍책임도 구글 면접 문제로 유명한 문제를 하나 골라왔다. 그리고 프로그래밍 스타일을 파악하기 위한 문제도 하나 준비했는데, 이건 기억이 잘 나지 않는다.

일단 이 날 우리가 준비한 문제들 중 기억에 나는 것들을 여기 적어둔다.

[1] Bean Problem
(Precondition) 검정콩과 흰 콩들이 섞여서 들어 있는 컵이 하나 있고, 검은콩이 무한대로 들어 있는 자루가 있다.
(Task) 컵에서 두 개의 콩을 꺼내서 두 콩의 색이 같으면 둘 다 버린 후, 검은 콩을 자루에서 하나 꺼내서 컵에 넣는다. 컵에서 꺼낸 두 콩의 색이 다르면 검은콩은 버리고 흰콩은 다시 컵에 넣는다.
(Question 1) 다음과 같은 작업들을 계속 반복한다면 어떻게 될 것인가?
(Question 2) 처음 컵에 흰 콩이 M개, 검은 콩이 N개 담겨 있었다면 마지막 콩의 색깔은 어떻게 결정되는가?

[2] Graph Problem
X 축 [0..1] 구간에 y = a*x + b 와 같은 직선들이 (예를 들어) 1,000개 쯤 있다.
a와 b는 각각 실수이며(음수, 양수, 0 모두 가능), 1,000개의 직선들은 x축 [0..1] 구간에서 절대로 서로 교차하지 않는다.

1,000개의 직선들이 (a, b)의 쌍 1,000개로서 주어졌을 때, 어떤 점 P = (Px, Py)는 주어진 1,000개의 직선들 중 두 개의 직선 및 x=0, x=1 으로 이루어진 사각형 내에 포함된다고 하자. 이럴 때 입력으로 주어진 1,000개의 직선들 중 P를 둘러싼 두 개의 직선을 찾아내는 알고리즘을 기술하라.

(미리 소팅이 가능한 경우와 미리 소팅이 가능하지 않은 경우의 답이 다르다)

[3] Card Shuffling
N개의 숫자들이 오름차순으로 가지런히 정렬되어 있다.
rand() 함수를 사용하여 N개의 숫자들을 ramdomized order로 재구성하되, O(N)의 complexity를 가지도록 재구성하는 방법은?

대강 이런 문제들이었다.

저녁밥을 먹고 와서부터 홍책임 방으로 내려가서 계속 같이 작업을 했는데, 밤 11시쯤이 되니까 각 문제에 대한 채점 기준 같은 것들도 세부적으로 정할 수 있었다. 사실 준비한 문제들이 많지 않아서 좀 걱정이 되긴 하였다. 면접자들이 서로 문제에 대한 해답을 주고받으면 그 효용성이 크게 떨어지기 대문이다. 그렇지만 채점 기준들까지 정해두고 나니 뭔가 면접을 위해서 나름 기본은 지키려고 애를 쓴 것 같아서 서로 뿌듯하였다.

그 다음 코스는 다음날 면접을 위해서 쿨쿨 잠~
물론 같이 잔 것은 아니다 :)  

 
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 우경구

트랙백 보낼 주소 :: http://epigram.tistory.com/trackback/107

  1. 우책임님의 알고리즘 문제

    2008/03/20 00:51
    삭제
    저희팀 우책임님께서 올리신 문제가 있어서 한번 풀어봅니다 ^^;; 오늘 오후에는 김영석 선임이 확률문제를 내주셔서 간만에 재미를 주시더니, 이번에는 우책임님의 알고리즘 문제네요. 문제는 다음과 같습니다. [1] Bean Problem (Precondition) 검정콩과 흰 콩들이 섞여서 들어 있는 컵이 하나 있고, 검은콩이 무한대로 들어 있는 자루가 있다. (Task) 컵에서 두 개의 콩을 꺼내서 두 콩의 색이 같으면 둘 다 버린 후, 검은 콩을 자..

댓글을 달아주세요:: 네티켓은 기본, 스팸은 사절

  1. ranzzy
    2008/03/20 02:57
    댓글 주소 수정/삭제 댓글
    크하.. 이걸 풀 수 있는 사람들이 많단 건가요?? 전 하나도 모르겠는걸요? --; 뭐..CareerCup인가? 그런 사이트들도 들어가봤었는데.. 이런 문제를 보다보면 IQ가 높은 사람을 뽑고자 하는게 아닌가 하는 생각이 들어요. 아무튼 저는 이제 학교에서 잘려도 삼성에는 못들어가겠네요.. (구글도 당연히 못들어가겠군요..) :)
  2. 우경구
    2008/03/20 14:08
    댓글 주소 수정/삭제 댓글
    무슨 말씀을 :)

    문제 슬쩍슬쩍 읽어보고서는 "아유 귀찮아~~" 해서 그렇겠지. 안 봐도 뻔하네~~ 실제로 펜을 잡고 달려들면 누구보다도 풀어낼 걸? 동섭이 같은 경우는 구글이고 MS고 전세계 어느 회사에 원서를 내도 다 덜컥덜컥 붙어버릴 거라고 생각해~


    회사에서 머리가 좋은 사람들을 뽑으려고 하는 건 당연한 일인 것 같고, 문제들을 코드화하기까지의 과정을 지켜보고 있노라면 지원자의 특징을 많이 파악할 수 있는 것 같아서, 생각보다 효용성이 큰 것 같더라. 그런 에피소드 몇 가지는 다음 posting에 써 보도록 하쥐~
  3. 2008/03/21 14:53
    댓글 주소 수정/삭제 댓글
    아놔...
    우책임님... 너무 어려워요...
    상품을 걸어주시면 댓글이 쫘악 달릴지도 ^^
    • 2008/03/26 23:10
      댓글 주소 수정/삭제
      에 그럴까요? 상품은 쿤룬호텔표 볼펜 한자루? ^^
  4. 2008/04/09 14:35
    댓글 주소 수정/삭제 댓글
    오호, 이 문제들 재미있네요. :-) 세번째 문제는 알겠군요. 한번 꼬이니 자꾸 어문다리만 긁게 되는데 다시 생각해보니 쉽게 되네요. ^^ 이걸 문제로 함 써 봐야겠네요.
    • epigram
      2008/04/09 21:56
      댓글 주소 수정/삭제
      그렇게 하시죠~
      도 빌려온 것들이니 로열티 따윈 절대 없습니다 ㅋㅋ

      그나저나 Programming Pearls는 다시 읽어봐도 참 재미있는 책인 것 같습니다. 저자가 최근의 감각으로 다시 좀 써 줬으면 좋겠는데 말이죠. "생각하는 프로그래밍"이라고 누가 이 책을 번역해 놨는데, 완전 엉망이더군요. 그 좋은 책을 거의 만행 수준이예요 --;
  5. 2008/04/26 12:24
    댓글 주소 수정/삭제 댓글
    심심해서 또 놀러 왔다가 두번째 문제도 풀어봤네요. 소팅이 되어 있으면 O(log n), 안되어 있으면 O(n log n)이겠네요. :-)
    • 2008/04/28 23:45
      댓글 주소 수정/삭제
      후훗~ 두 번째 문제는 그림으로 그려놓지를 않은 터라 잘 전달될까 걱정했는데, 잘 이해하셨군요 :) O(LogN)과 O(N) 맞습니다. ^^


BLOG main image
The best is always yet to come. by 우경구

공지사항

카테고리

Categories (208)
Academia (14)
Art (12)
Book (12)
Epigram (16)
Life (94)
Work (59)
Total : 34,244
Today : 70 Yesterday : 179