출처 : http://biz.chosun.com/site/data/html_dir/2010/12/10/2010121000690.html

Google Interview Questions: Product Marketing Manager

- Why do you want to join Google?

- What do you know about Google's product and technology?

- If you are Product Manager for Google's Adwords, how do you plan to market this?

- What would you say during an AdWords or AdSense product seminar?

- Who are Google's competitors, and how does Google compete with them?

- Have you ever used Google's products? Gmail?

- What's a creative way of marketing Google's brand name and product?

- If you are the product marketing manager for Google's Gmail product, how do you plan to market it so as to achieve 100 million customers in 6 months?

- How much money you think Google makes daily from Gmail ads?

- Name a piece of technology you’ve read about recently. Now tell me your own creative execution for an ad for that product.

- Say an advertiser makes $0.10 every time someone clicks on their ad. Only 20% of people who visit the site click on their ad. How many people need to visit the site for the advertiser to make $20?

- Estimate the number of students who are college seniors, attend four-year schools, and graduate with a job in the United States every year.


Google Interview Questions: Product Manager

- How would you boost the GMail subscription base?

- What is the most efficient way to sort a million integers?

- How would you re-position Google's offerings to counteract competitive threats from Microsoft?

- How many golf balls can fit in a school bus?

- You are shrunk to the height of a nickel and your mass is proportionally reduced so as to maintain your original density. You are then thrown into an empty glass blender. The blades will start moving in 60 seconds. What do you do?

- How much should you charge to wash all the windows in Seattle?

- How would you find out if a machine’s stack grows up or down in memory?

- Explain a database in three sentences to your eight-year-old nephew.

- How many times a day does a clock’s hands overlap?

- You have to get from point A to point B. You don’t know if you can get there. What would you do?

- Imagine you have a closet full of shirts. It’s very hard to find a shirt. So what can you do to organize your shirts for easy retrieval?

- Every man in a village of 100 married couples has cheated on his wife. Every wife in the village instantly knows when a man other than her husband has cheated, but does not know when her own husband has. The village has a law that does not allow for adultery. Any wife who can prove that her husband is unfaithful must kill him that very day. The women of the village would never disobey this law. One day, the queen of the village visits and announces that at least one husband has been unfaithful. What happens?

- In a country in which people only want boys, every family continues to have children until they have a boy. If they have a girl, they have another child. If they have a boy, they stop. What is the proportion of boys to girls in the country?

- If the probability of observing a car in 30 minutes on a highway is 0.95, what is the probability of observing a car in 10 minutes (assuming constant default probability)?

- If you look at a clock and the time is 3:15, what is the angle between the hour and the minute hands? (The answer to this is not zero!)

- Four people need to cross a rickety rope bridge to get back to their camp at night. Unfortunately, they only have one flashlight and it only has enough light left for seventeen minutes. The bridge is too dangerous to cross without a flashlight, and it's only strong enough to support two people at any given time. Each of the campers walks at a different speed. One can cross the bridge in 1 minute, another in 2 minutes, the third in 5 minutes, and the slow poke takes 10 minutes to cross. How do the campers make it across in 17 minutes?

- You are at a party with a friend and 10 people are present including you and the friend. your friend makes you a wager that for every person you find that has the same birthday as you, you get $1; for every person he finds that does not have the same birthday as you, he gets $2. would you accept the wager?

- How many piano tuners are there in the entire world?

- You have eight balls all of the same size. 7 of them weigh the same, and one of them weighs slightly more. How can you find the ball that is heavier by using a balance and only two weighings?

- You have five pirates, ranked from 5 to 1 in descending order. The top pirate has the right to propose how 100 gold coins should be divided among them. But the others get to vote on his plan, and if fewer than half agree with him, he gets killed. How should he allocate the gold in order to maximize his share but live to enjoy it? (Hint: One pirate ends up with 98 percent of the gold.)

- You are given 2 eggs. You have access to a 100-story building. Eggs can be very hard or very fragile means it may break if dropped from the first floor or may not even break if dropped from 100th floor. Both eggs are identical. You need to figure out the highest floor of a 100-story building an egg can be dropped without breaking. The question is how many drops you need to make. You are allowed to break 2 eggs in the process.

- Describe a technical problem you had and how you solved it.

- How would you design a simple search engine?

- Design an evacuation plan for San Francisco.

- There's a latency problem in South Africa. Diagnose it.

- What are three long term challenges facing Google?

- Name three non-Google websites that you visit often and like. What do you like about the user interface and design? Choose one of the three sites and comment on what new feature or project you would work on. How would you design it?

- If there is only one elevator in the building, how would you change the design? How about if there are only two elevators in the building?

- How many vacuum’s are made per year in USA? 


Google Interview Questions: Software Engineer

- Why are manhole covers round?

- What is the difference between a mutex and a semaphore? Which one would you use to protect access to an increment operation?

- A man pushed his car to a hotel and lost his fortune. What happened?

- Explain the significance of "dead beef".

- Write a C program which measures the the speed of a context switch on a UNIX/Linux system.

- Given a function which produces a random integer in the range 1 to 5, write a function which produces a random integer in the range 1 to 7.

- Describe the algorithm for a depth-first graph traversal.

- Design a class library for writing card games.

- You need to check that your friend, Bob, has your correct phone number, but you cannot ask him directly. You must write a the question on a card which and give it to Eve who will take the card to Bob and return the answer to you. What must you write on the card, besides the question, to ensure Bob can encode the message so that Eve cannot read your phone number?

- How are cookies passed in the HTTP protocol?

- Design the SQL database tables for a car rental database.

- Write a regular expression which matches a email address.

- Write a function f(a, b) which takes two character string arguments and returns a string containing only the characters found in both strings in the order of a. Write a version which is order N-squared and one which is order N.

- You are given a the source to a application which is crashing when run. After running it 10 times in a debugger, you find it never crashes in the same place. The application is single threaded, and uses only the C standard library. What programming errors could be causing this crash? How would you test each one?

- Explain how congestion control works in the TCP protocol.

- In Java, what is the difference between final, finally, and finalize?

- What is multithreaded programming? What is a deadlock?

- Write a function (with helper functions if needed) called to Excel that takes an excel column value (A,B,C,D...AA,AB,AC,...AAA..) and returns a corresponding integer value(A=1,B=2,...AA=26..).

- You have a stream of infinite queries (ie: real time Google search queries that people are entering). Describe how you would go about finding a good estimate of 1000 samples from this never ending set of data and then write code for it.

- Tree search algorithms. Write BFS and DFS code, explain run time and space requirements. Modify the code to handle trees with weighted edges and loops with BFS and DFS, make the code print out path to goal state.

- You are given a list of numbers. When you reach the end of the list you will come back to the beginning of the list (a circular list). Write the most efficient algorithm to find the minimum # in this list. Find any given # in the list. The numbers in the list are always increasing but you don’t know where the circular list begins, ie: 38, 40, 55, 89, 6, 13, 20, 23, 36.

- Describe the data structure that is used to manage memory. (stack)

- What's the difference between local and global variables?

- If you have 1 million integers, how would you sort them efficiently? (modify a specific sorting algorithm to solve this)

- In Java, what is the difference between static, final, and const. (if you don't know Java they will ask something similar for C or C++).

- Talk about your class projects or work projects (pick something easy)... then describe how you could make them more efficient (in terms of algorithms).

- Suppose you have an NxN matrix of positive and negative integers. Write some code that finds the sub-matrix with the maximum sum of its elements.

- Write some code to reverse a string.

- Implement division (without using the divide operator, obviously).

- Write some code to find all permutations of the letters in a particular string.
- What method would you use to look up a word in a dictionary?

- Imagine you have a closet full of shirts. It’s very hard to find a shirt. So what can you do to organize your shirts for easy retrieval?

- You have eight balls all of the same size. 7 of them weigh the same, and one of them weighs slightly more. How can you fine the ball that is heavier by using a balance and only two weighings?

- What is the C-language command for opening a connection with a foreign host over the internet?

- Design and describe a system/application that will most efficiently produce a report of the top 1 million Google search requests. These are the particulars: 1) You are given 12 servers to work with. They are all dual-processor machines with 4Gb of RAM, 4x400GB hard drives and networked together. (Basically, nothing more than high-end PC’s) 2) The log data has already been cleaned for you. It consists of 100 Billion log lines, broken down into 12 320 GB files of 40-byte search terms per line. 3) You can use only custom written applications or available free open-source software.

- There is an array A[N] of N numbers. You have to compose an array Output[N] such that Output[i] will be equal to multiplication of all the elements of A[N] except A[i]. For example Output [0] will be multiplication of A[1] to A[N-1] and Output[1] will be multiplication of A[0] and from A[2] to A[N-1]. Solve it without division operator and in O(n).

- There is a linked list of numbers of length N. N is very large and you don’t know N. You have to write a function that will return k random numbers from the list. Numbers should be completely random. Hint: 1. Use random function rand() (returns a number between 0 and 1) and irand() (return either 0 or 1) 2. It should be done in O(n).

- Find or determine non existence of a number in a sorted list of N numbers where the numbers range over M, M>> N and N large enough to span multiple disks. Algorithm to beat O(log n) bonus points for constant time algorithm.

- You are given a game of Tic Tac Toe. You have to write a function in which you pass the whole game and name of a player. The function will return whether the player has won the game or not. First you to decide which data structure you will use for the game. You need to tell the algorithm first and then need to write the code. Note: Some position may be blank in the game  So your data structure should consider this condition also.

- You are given an array [a1 To an] and we have to construct another array [b1 To bn] where bi = a1*a2*...*an/ai. you are allowed to use only constant space and the time complexity is O(n). No divisions are allowed.

- How do you put a Binary Search Tree in an array in a efficient manner. Hint :: If the node is stored at the ith position and its children are at 2i and 2i+1(I mean level order wise)Its not the most efficient way.

- How do you find out the fifth maximum element in an Binary Search Tree in efficient manner. Note: You should not use use any extra space. i.e sorting Binary Search Tree and storing the results in an array and listing out the fifth element.

- Given a Data Structure having first n integers and next n chars. A = i1 i2 i3 ... iN c1 c2 c3 ... cN. Write an in-place algorithm to rearrange the elements of the array ass A = i1 c1 i2 c2 ... in cn

- Given two sequences of items, find the items whose absolute number increases or decreases the most when comparing one sequence with the other by reading the sequence only once.

- Given That One of the strings is very very long , and the other one could be of various sizes. Windowing will result in O(N+M) solution but could it be better? May be NlogM or even better?

- How many lines can be drawn in a 2D plane such that they are equidistant from 3 non-collinear points?

- Let's say you have to construct Google maps from scratch and guide a person standing on Gateway of India (Mumbai) to India Gate(Delhi). How do you do the same?

- Given that you have one string of length N and M small strings of length L. How do you efficiently find the occurrence of each small string in the larger one?

- Given a binary tree, programmatically you need to prove it is a binary search tree.

- You are given a small sorted list of numbers, and a very very long sorted list of numbers - so long that it had to be put on a disk in different blocks.

How would you find those short list numbers in the bigger one?

- Suppose you have given N companies, and we want to eventually merge them into one big company. How many ways are theres to merge?

- Given a file of 4 billion 32-bit integers, how to find one that appears at least twice?

- Write a program for displaying the ten most frequent words in a file such that your program should be efficient in all complexity measures.

- Design a stack. We want to push, pop, and also, retrieve the minimum element in constant time.

- Given a set of coin denominators, find the minimum number of coins to give a certain amount of change.

- Given an array, i) find the longest continuous increasing subsequence. ii) find the longest increasing subsequence.

- Suppose we have N companies, and we want to eventually merge them into one big company. How many ways are there to merge?

- Write a function to find the middle node of a single link list.

- Given two binary trees, write a compare function to check if they are equal or not. Being equal means that they have the same value and same structure.

- Implement put/get methods of a fixed size cache with LRU replacement algorithm.

- You are given with three sorted arrays ( in ascending order), you are required to find a triplet ( one element from each array) such that distance is minimum.

- Distance is defined like this : If a[i], b[j] and c[k] are three elements then distance=max(abs(a[i]-b[j]),abs(a[i]-c[k]),abs(b[j]-c[k]))" Please give a solution in O(n) time complexity

- How does C++ deal with constructors and deconstructors of a class and its child class?

- Write a function that flips the bits inside a byte (either in C++ or Java). Write an algorithm that take a list of n words, and an integer m, and retrieves the mth most frequent word in that list.

- What's 2 to the power of 64?

- Given that you have one string of length N and M small strings of length L. How do you efficiently find the occurrence of each small string in the larger one?

- How do you find out the fifth maximum element in an Binary Search Tree in efficient manner.

- Suppose we have N companies, and we want to eventually merge them into one big company. How many ways are there to merge?

- There is linked list of millions of node and you do not know the length of it. Write a function which will return a random number from the list.

- You need to check that your friend, Bob, has your correct phone number, but you cannot ask him directly. You must write a the question on a card which and give it to Eve who will take the card to Bob and return the answer to you. What must you write on the card, besides the question, to ensure Bob can encode the message so that Eve cannot read your phone number?

- How long it would take to sort 1 trillion numbers? Come up with a good estimate.

- Order the functions in order of their asymptotic performance: 1) 2^n 2) n^100 3) n! 4) n^n

- There are some data represented by(x,y,z). Now we want to find the Kth least data. We say (x1, y1, z1) > (x2, y2, z2) when value(x1, y1, z1) > value(x2, y2, z2) where value(x,y,z) = (2^x)*(3^y)*(5^z). Now we can not get it by calculating value(x,y,z) or through other indirect calculations as lg(value(x,y,z)). How to solve it?

- How many degrees are there in the angle between the hour and minute hands of a clock when the time is a quarter past three?

- Given an array whose elements are sorted, return the index of a the first occurrence of a specific integer. Do this in sub-linear time. I.e. do not just go through each element searching for that element.

- Given two linked lists, return the intersection of the two lists: i.e. return a list containing only the elements that occur in both of the input lists.

- What's the difference between a hashtable and a hashmap?

- If a person dials a sequence of numbers on the telephone, what possible words/strings can be formed from the letters associated with those numbers?

- How would you reverse the image on an n by n matrix where each pixel is represented by a bit?

- Create a fast cached storage mechanism that, given a limitation on the amount of cache memory, will ensure that only the least recently used items are discarded when the cache memory is reached when inserting a new item. It supports 2 functions: String get(T t) and void put(String k, T t).

- Create a cost model that allows Google to make purchasing decisions on to compare the cost of purchasing more RAM memory for their servers vs. buying more disk space.

- Design an algorithm to play a game of Frogger and then code the solution. The object of the game is to direct a frog to avoid cars while crossing a busy road. You may represent a road lane via an array. Generalize the solution for an N-lane road.

- What sort would you use if you had a large data set on disk and a small amount of ram to work with?

- What sort would you use if you required tight max time bounds and wanted highly regular performance.

- How would you store 1 million phone numbers?

- Design a 2D dungeon crawling game. It must allow for various items in the maze - walls, objects, and computer-controlled characters. (The focus was on the

class structures, and how to optimize the experience for the user as s/he travels through the dungeon.)

- What is the size of the C structure below on a 32-bit system? On a 64-bit?


Google Interview: Software Engineer in Test
- Efficiently implement 3 stacks in a single array.

- Given an array of integers which is circularly sorted, how do you find a given integer.

- Write a program to find depth of binary search tree without using recursion.

- Find the maximum rectangle (in terms of area) under a histogram in linear time.

- Most phones now have full keyboards. Before there there three letters mapped to a number button. Describe how you would go about implementing spelling and word suggestions as people type.

- Describe recursive mergesort and its runtime. Write an iterative version in C++/Java/Python.

- How would you determine if someone has won a game of tic-tac-toe on a board of any size?

- Given an array of numbers, replace each number with the product of all the numbers in the array except the number itself *without* using division.

- Create a cache with fast look up that only stores the N most recently accessed items.

- How to design a search engine? If each document contains a set of keywords, and is associated with a numeric attribute, how to build indices?

- Given two files that has list of words (one per line), write a program to show the intersection.

- What kind of data structure would you use to index annagrams of words? e.g. if there exists the word "top" in the database, the query for "pot" should list that.


Google Interview: Quantitative Compensation Analyst

- What is the yearly standard deviation of a stock given the monthly standard deviation?

- How many resumes does Google receive each year for software engineering?

- Anywhere in the world, where would you open up a new Google office and how would you figure out compensation for all the employees at this new office? What is the probability of breaking a stick into 3 pieces and forming a triangle? 


Google Interview: Engineering Manager

- You're the captain of a pirate ship, and your crew gets to vote on how the gold is divided up. If fewer than half of the pirates agree with you, you die.

- How do you recommend apportioning the gold in such a way that you get a good share of the booty, but still survive?


Google Interview: AdWords Associate

- How would you work with an advertiser who was not seeing the benefits of the AdWords relationship due to poor conversions?

- How would you deal with an angry or frustrated advertisers on the phone?


출처 : http://biz.chosun.com/site/data/html_dir/2010/12/10/2010121001145.html

기상천외한 문제들… 무릎을 탁치는 대답 못하면 '위험'
구글 면접 4대 키워드
1. 얼마나 창의적인가
2. 논리적 사고를 하는가
3. 상황 대처능력 평가
4. 업무지식·비전이 있나국내서도 유사한 시험 유행

세계 최대 인터넷 기업인 구글(Google)의 입사 면접시험 문제는 기발할 뿐 아니라 대답하기 어렵기로 유명하다. 발상의 전환과 논리적 사고력을 동시에 요구하면서 실전적인 문제 해결 능력까지 테스트하기 때문이다. 미국의 고용 컨설팅 업체인 시애틀 인터뷰 코치(Seattle Interview Coach)는 최근 구글 면접시험 응시자들을 통해 파악한 면접시험 문제 140개를 발굴해 공개했다.

이 문제들은 예측하기 힘든 변화의 상황에서 창의적 해결책을 제시할 줄 아는 인재를 찾는 데 주안점을 두고 있다. 입사 동기나 자신의 장단점, 포부 등을 묻는 평범한 질문보다는 기발하고 때론 황당하기까지 한 질문이 많다. 논리적이면서도 때로는 '상자 밖'에서 생각할 수 있는 진정한 '구글러(Googler)'를 찾아내려는 것이다. 구글은 또한 제대로 된 질문을 할 줄 아는 인재도 중요시한다. 응시자가 때로는 면접관에게 역으로 질문을 던져야 한다는 얘기다.

실제 면접시험에서 이런 질문을 받는다면 얼마나 당황스러울까. 그러나 최근엔 국내에서도 일부 컨설팅 회사와 대기업들이 구글과 유사한 방식으로 면접시험을 치르고 있다. 요즘 세상이 원하는 인재상이 어떤지를 알기 위해 구글이 출제한 시험문제들을 살펴보기로 하자. 구글의 면접시험 문제는 크게 4가지 유형이다.

■발상의 전환

①옷장에 셔츠가 가득 차 있는데, 원하는 셔츠를 찾기 힘들다. 쉽게 찾기 위한 당신만의 정리법은?

②건물에 엘리베이터가 한 대뿐이라면 이를 어떻게 디자인하겠는가? 2대라면?

③A지점에서 B지점으로 가야 한다. 그런데 도착할 수 있을지도 확실치 않다. 어떻게 하겠는가?

이들 질문의 의도는 정답을 원하는 게 아니다. 지원자가 기존의 틀에서 벗어나 얼마나 자유롭게 사고하고, 혁신적 아이디어를 낼 수 있는지를 알아보려는 것이다. '내 의견이 곧 답'이라는 자세로 생각을 자유롭게 표현하면 된다.

■논리적 사고력

①3시15분에 시침과 분침이 만들어내는 각도는?

②미국 대학의 4학년 학생 중 취업 후에 졸업하는 학생은 몇 명인가?

③인터넷 사이트 방문자가 배너 광고를 한번 클릭하면 광고회사는 10센트를 번다. 방문자의 20%만 클릭을 한다. 20달러를 벌려면 몇 명이 방문해야 하나?

수리적 계산 및 논리적 추론 능력을 보는 질문이다. 정보가 부족한 상황에서 지원자가 어떻게 대응하는지도 살펴본다. ①번의 답은 7.5도. ②번 질문은 자신이 졸업한 대학을 사례로 학생 숫자를 추정한 뒤 전체 대학 수에 곱하는 것이 한 방법이다. ③번의 경우 10센트를 벌려면 5명, 그 200배인 20달러를 벌려면 1000명이 방문해야 한다.

■상황에 따른 문제 해결

①100명의 부부가 사는 마을에서 모든 남편은 바람을 피운다. 부인들은 남의 남편이 바람피우는 것은 알지만, 내 남편이 바람피우는 건 모른다. 부인이 남편 바람피운 것을 증명하면 남편을 죽여야 한다. 이 규칙은 누구도 어기지 못한다. 어느 날 이 마을의 여왕이 이 마을 남편 중 최소한 1명은 바람을 피운다는 사실을 공표했다. 어떤 일이 벌어질까?

②A·B·C·D 4명이 밤에 다리를 건너는데, 각각 1·2·5·10분씩 걸린다. 동시에 두 사람만 건널 수 있고, 손전등이 반드시 필요하다. 손전등 한 개만 갖고 4명이 17분 안에 다 건너갈 방법은?

상황에 대한 판단력과 논리적인 해결 능력을 보기 위한 질문으로, 비정형적 상황이 발생했을 때 어떤 논리로 대응해 나가는지를 테스트한다. 문제 해결 과정이 평가의 초점이다. ①번 답은 '이 마을의 남편들이 결국 모두 죽는다'이다. ②번 답은 A, B가 같이 건넌 뒤(2분), A가 손전등을 갖고 돌아와서(1분), C, D가 함께 건너고(10분), B가 돌아온 뒤(2분), A, B가 함께 건넌다(2분) 총 17분이다.

■업무지식과 비전

①구글의 경쟁사는 어디이며, 어떻게 경쟁해야 하나?

②6개월 안에 G메일 고객 1억명을 확보할 방안을 세워보라.

③구글이 당면한 세 가지 장기 과제는?

지원자가 구글과 IT산업, 소프트웨어 등에 대해 얼마나 아는지, 업무 능력과 비전을 갖고 있는지를 알아보는 것이다. 회사에 대한 기본적 지식과 함께 최신 이슈를 파악하고 자신만의 업무비전과 계획도 가지고 있어야 한다.


출처 : http://biz.chosun.com/site/data/html_dir/2010/12/10/2010121001578.html

미국의 비즈니스 잡지 중 하나인 ‘비즈니스 인사이더(Business Insider)’는 구글의 면접 질문 중 답이 있는 질문들에 대해 모범답안을 제시했다. 다음은 그 중 일부이다. 질문의 의도가 무엇이고 면접자의 어떤 능력을 보려고 한 것인지에 대한 설명(☆)과 함께 모범답안(→)을 예시했다.

Q: A나라 사람들은 모두 아들을 극단적으로 선호해서 아들을 가질 때까지 계속해서 아이를 낳습니다. 아들을 가지면 아이 낳기를 중단하고, 딸을 낳으면 아들을 가질 때까지 계속 아이를 낳습니다. 이 나라에서 아들과 딸의 비율은 어떻게 될까요?

☆상당한 논란을 낳을 수 있는 질문입니다. 그러나 논리적 절차에 따라 비율을 계산하면 의외로 간단합니다.

→답은 50대 50으로 같습니다. 가령 이 나라에 1000쌍의 부부가 있고 각각 1명씩 1000명의 아이(아들 500명, 딸 500명)를 낳았다고 합시다. 아들을 가진 부부는 자녀 갖기를 중단할 것이고, 딸 가진 부부는 또 아이를 낳을 겁니다. 자연적 확률에 따라 아들 250명, 딸 250명이 됩니다. 이때 아들의 총수는 750명이고, 딸도 750명입니다. 딸 가진 부부(250쌍)는 또 아이를 가지는데, 아들 125명, 딸 125명을 낳습니다. 이때 아들은 총 875명, 딸도 875명입니다. 이렇게 해서 딸 가진 부부가 계속 아이를 가져도 아들·딸의 비율은 50대 50으로 변화가 없습니다.

Q: 맨홀 뚜껑은 왜 둥글까요?

☆기하학적 지식을 요구하는 문제입니다. 사각형이나 삼각형에 비해 원이 가지는 기하학적 특징이 무엇인지를 맨홀과 연결지어서 생각해야 합니다.

→둥근 맨홀 뚜껑은 절대 맨홀 안으로 떨어지지 않기 때문입니다. 좀 더 자세히 설명하겠습니다. 맨홀 뚜껑 아래에는 이를 받쳐주는 좁은 밑받침(턱)이 있습니다. 그래서 뚜껑이 사각이든 삼각이든 원형이든 평소에는 맨홀 아래로 떨어지지 않습니다. 그러나 맨홀 속으로 들어가기 위해 뚜껑을 열었을 때는? 뚜껑을 수직으로 세운 뒤 방향을 틀어보세요. 사각형이나 삼각형 뚜껑은 짧은 변이 대각선이나 긴 변보다 길이가 짧기 때문에 맨홀 아래로 떨어집니다. 그러나 원은 모든 방향으로 길이가 같기 때문에 어떤 경우에도 아래로 떨어지지 않습니다.

한 가지 이유가 더 있습니다. 원은 평면에 비해 압력에 견디는 힘이 강합니다. 맨홀이 둥근 모양인 것은 양옆에서 가해지는 압박에 잘 견디기 때문입니다. 그래서 맨홀 뚜껑도 원형으로 설계돼 있습니다.

Q: 시계의 시침과 분침은 하루에 몇 번이나 만날까요?

☆차분하게 논리적으로 생각하는 능력을 파악하려는 것입니다. 덜렁대면 착각할 수 있습니다.

→일단 자정에 한번 만납니다. 그리고 오전 1시5분, 2시11분, 3시16분, 4시22분, 5시27분, 6시33분, 7시38분, 8시44분, 9시49분, 10시55분 무렵에 만납니다. 오전 11시 대에는 분침과 시침이 안 만납니다. 오전에 총 11번. 오후에도 동일합니다. 그래서 총 22번 만납니다.

Q: 당신은 해적선 선장입니다. 황금을 어떻게 배분할지에 대한 당신의 안을 놓고 100명의 선원이 투표를 합니다. 과반의 지지를 못 얻으면 당신은 죽어요. 죽지 않으면서 최대한 많은 황금을 차지할 수 있는 안은 무엇인가요?

☆순발력과 함께 투표 행위의 본질적 요소가 무엇인지에 대한 이해가 요구됩니다.

→선원 51명과 황금을 똑같이 나눠 가지는 겁니다. 왜? 과반의 지지를 얻으려면 선원 51%를 내 편으로 만들어야 합니다. 그러려면 황금을 줘야 합니다. 그러나 분배 과정에서 불만이 있으면 안 되죠. 1표가 똑같은 가치인 만큼 황금도 똑같이 나눠야 합니다. 51명 초과의 지지는 배분 몫만 줄이므로 불필요합니다.

Q: 같은 크기의 공이 8개 있는데, 그 중 7개는 무게가 같고 한 개는 더 무거워요. 저울을 두 번만 사용해서 무거운 공을 찾아내세요.

☆논리적인 문제 해결 능력을 측정하는 문제입니다.

→8개의 공 중에서 6개를 임의로 고른 뒤 저울 양쪽에 3개씩 올려놓습니다. 저울이 균형을 이루면 6개의 공은 모두 무게가 같은 겁니다. 남은 2개의 공을 저울로 재서 무거운 공을 찾아내면 됩니다. 반대로 저울이 한쪽으로 기울면, 무거운 쪽 공 3개 중에서 2개를 임의로 골라 저울에 다시 잽니다. 한쪽이 무거우면 그 공이 답이고요, 저울이 균형을 이루면 남은 1개의 공이 무거운 공입니다.

Q: 샌프란시스코 시민들을 한꺼번에 대피시킬 계획을 말해보세요.

☆면접자가 문제에 어떻게 대처하는지 그 태도를 보려는 질문입니다. 대답하려고 끙끙거리기보다는 질문자에게 거꾸로 질문 공세를 펴보세요.

→대피 계획을 세우라고 하셨는데, 도대체 어떤 종류의 재앙에 대한 대피계획을 세워야 하는지 말씀해 주십시오.

Q: 특수 제조한 계란이 2개 있는데, 100층 높이 빌딩의 몇 층에서 떨어뜨려야 깨지는지 알아내려 합니다. 단 2개의 계란만 사용해서 몇 층에서 깨지는지 확실하게 알아내려면 계란을 최소 몇 번 떨어뜨려 봐야 할까요?

☆논리적 계산력과 함께 직관적 해결능력이 필요한, 상당히 난해한 문제입니다. 최소 비용(계란)과 시간(횟수)으로 실험을 하라는 겁니다.

→답은 14번입니다. 1층부터 차례로 계란을 떨어뜨려 보면 몇 층에서 깨지는지 확실히 알 수 있지만, 100층까지 최대 100번을 던져봐야 합니다. 50층에서 실험한 뒤 깨지면 1층부터, 안 깨지면 51층부터 실험하면 실험 횟수를 절반으로 줄일 수 있죠. 같은 식으로 최초에 시작하는 층을 계산해 보면 14층이 가장 효율적입니다. 14층에서 깨지면 1층부터 실험합니다(최대 14회 실험). 안 깨지면 13층 위인 27층에서 다시 실험합니다. 깨지면 15층부터 26층까지 던져보고(이 경우도 최대 14회 실험), 안 깨지면 12층 위인 39층에서 실험을 반복합니다. 계속 같은 실험을 50·60·69·77·80·86·91· 95·98층에서 차례로 실시합니다. 98층에서 안 깨지면 99·100층에서 최종 투척 실험을 합니다. 이 모든 경우 최대 실험 횟수는 14번입니다. 이것이 계란이 몇 층에서 깨지는지를 아는 가장 효율적인 방법입니다.

Q: 8세짜리 조카에게 데이터베이스(database)가 무엇인지 3문장 이내로 설명해 보세요.

☆복잡한 개념을 쉬운 말로 설명하면서, 누구와도 소통할 수 있는 능력을 알아보려는 것입니다.

→데이터베이스는 여러 가지 사물에 대한 많은 정보를 기억할 수 있는 기계란다. 사람들은 이 기계에 많은 정보를 저장한 뒤 필요할 때 꺼내 쓰지. 자, 이제 알았으니 나가서 뛰어놀렴.

'ETC > 잡동사니 이야기' 카테고리의 다른 글

MSN 움직이는 토끼 이모티콘  (0) 2013.02.27
화투점 풀이  (0) 2013.02.27
회사 직급 영문 표기  (0) 2013.02.27
Self-discovery exercise (자기발견 프로그램)  (0) 2010.12.29
140 Google Interview Questions  (0) 2010.12.12
어깨 피로 푸는 요가 자세  (0) 2010.11.01
안정적인 DNS서비스 DNSEver DNS server, DNS service
Posted by 키르히아이스

댓글을 달아 주세요