Goldman Sachs Interview Experience for Software Developer Internship
Round 1 (Online coding round):
This was a 2 hours long round, which consisted of 4 sections- Coding, Quant, Subjective, and Advanced.
The Coding section comprised of 2 questions.
Question 1: Given an array, starting from the beginning of the array till it’s end, whenever you encounter the number ‘2’, add another ‘2’ just after it. In doing so, the last element in the array would be removed, because the final array should be the same size as the initial one. For example, if the initial array is [23, 2, 3, 12, 2, 2, 34, 55, 66, 79], then the modified array should be [23, 2, 2, 3, 12, 2, 2, 2, 2, 34]. Expected time complexity is O(n) and you should do it in place (using only constant amount of extra memory).
Question 2: There are ‘n’ ads. Each ad has an effectiveness value associated with it which is given in an array of size ‘n’ in the format [v1, v2, …, vn], where ‘v1’ is the effectiveness value of the first ad, ‘v2’ is the effectiveness value of the second ad, and so on. The show in which these ads will be shown is ‘m’ length long (starting from 0 till m), and the time when the ads can be shown is given in the format [(a1, b1), (a2, b2), …, (an, bn)], where ith tuple in the array denotes the timing of the ith ad in the format (start_time, end_time). Note that any ‘ai’ and ‘bi’ cannot be smaller than 0 and cannot be larger than ‘m’. When you choose to show an ad, you cannot show another ad within 4 minutes of it’s end. So if you select to show the ad having timings as (2, 4), then you cannot show another ad before 9, hence next ad cannot be (8, 10), but it can be (9, 12). You have to select the ads to show to the audience such that you maximize the sum of the effectiveness values of the ads, given the above constraints. For example, if ‘m’ is 20, and the timings of the ads are [(2, 3), (6, 9), (10, 12), (12, 13), (14, 17)] and the effectiveness values are [3, 9, 10, 6, 7], then you can show ad 2 and ad 5 (one-based-indexing) and have an effectiveness value of 16, which is the maximum you can get given the constraints.
The Quant section consisted of about 10 questions.
These were mixed questions on Probability, Computer Architecture, Operating Systems, High School Mathematics, and Discrete Mathematics. You can expect anything related to Maths and Computer Science in this section.
The Subjective section consisted of 2 questions.
Question 1: You have your final examinations from next week, and you also have your interview of your dream company next week. You cannot attend your exams if you want to give your interview. What would you do?
Question 2: You see that your President has leaked the exam documents on social media before it’s commencement. What do you do?
The advanced section consisted of 1 question.
Seeing the length of the question, I did not attempt it. But it was based on graph and it did not seem very difficult, but would have been really time consuming.
I did both the questions of the coding section, and about 7 questions of quant section, and of course both the questions of the subjective section. 21 students were called for interviews, and most of them did both questions of the coding section.
Round 2 (Online interview):
The shortlisted candidates were called for interviews. It was an online interview on Bluejeans. He asked me about myself. I gave him my introduction and my interests. Then he started discussing one of the projects that I mentioned in my introduction (a website made by me). We discussed about the project for about 30 minutes, and he was looking quite happy with the answers. He asked me what is the need for inheritance when we can have different classes. Then he asked me how to do Topological Sort for Directed Acyclic Graph. There was a lot of network issue, hence these were the only things discussed.
Round 3 (Online interview):
About 10 students were shortlisted after the previous interview, and I was one of them. The interviewer asked me how my last interview went. Then he jumped straight to questions. He asked me two quite easy questions. First one was to Print Left View of a Binary Tree. I gave him the recursive solution, but he wanted me to tell the iterative one. Finally I gave him the iterative solution. Second question was also quite easy. He wanted me to Find the node just greater than the given node in a Binary Search Tree.
7 students were selected for the intern position, and I was one of them. I would suggest to read Goldman Sachs Interview Experiences on GeeksForGeeks, because most of the questions (including those asked from my friends) were from there only. Probability questions are quite common, although I was not asked any in my interview.