Samsung recently visited my college to hire students for 2 months of Summer Internships. Due to the current COVID-19 situation, the entire process was held online. All students with a minimum CGPA of 7.5 were allowed to sit for it. There were a total of 3 rounds.
Round 1(Online Coding Round): This round was held on Samsung’s CoCubes platform. It does not allow many STL functions. There were 3 questions to be solved and we had 70 minutes to solve them. The first question was for 3 marks and the other 2 questions were for 5 marks each. There were multiple sets of Questions and were randomly assigned to everyone. I got the following Questions:-
- Given an unsorted 2D Array, sort each row of the array without using any inbuilt functions. I solved this with a simple bubble sort on each row with O(n^3) time complexity. My solution passed all test cases.
- Given a binary tree convert it to its sum tree. My method of solving it was similar to the method in the link and was able to pass all test cases.
- Given a BST, delete keys which do not lie in given range. I solved it using a recursive method similar to the one provided in the linked article.
- There were many students who solved all the questions but were not shortlisted due to them submitting the test at a later time.
- The platform runs the code only on a few basic test cases and does not run it on all test cases. This is done after submission. Try to keep the running time of your code below 2ms.
18 people were shortlisted for further rounds. You need to solve all questions completely to be shortlisted.
Round 2 (Technical Round): This round was held on skype. The type of questions asked in this round varied between interviewers however the questions were being repeated by the interviewers. I was asked a total of 4 questions in this round.
- The interviewer showed me a picture of the tower of Hanoi and told me to calculate the number of steps required to move all tiles from one column to another. This was just a simple puzzle, and he only wanted the answer. The interviewer expected proper code for the following questions. He shared a Google Doc and told me to write the code there.
- Given a linked list print it in reverse. The interviewer wanted this to be solved in a particular method but did not tell me beforehand, so I had to discuss my approaches with him first. I first said that I would reverse the linked list, print it, and reverse it again. He said that he wanted me to traverse the linked list only once. I then said I would traverse the linked list and push the value of each node into a stack and at the end would pop each value and print it. He said I could not use extra data structures. I then told him that I would solve it using recursion, and he asked me to code it. He was satisfied with my code.
- Given a string, find the minimum operations required to convert it into a palindrome. The only operation possible here is downgrading a character. eg- b->a , h->g, n->m. However, we cant downgrade a to z i,e a->a. I solved by calculating the absolute difference in the ASCII values of characters present having index i, n-1-i, where n is the length of the string, and i, varies from 0 to n/2.
- Design a stack that can give the maximum element in it in O(1) time. This is a standard question available online, and I was able to code it easily.
Then I asked him some questions regarding the projects interns work on in Samsung and ended the interview. The interview lasted for about 25 minutes.
Some questions asked by other interviewers were discussion on projects, Reversing a linked list, Nth element from the end of a linked list, Standard BFS and DFS problems, basics of OOPS and OS, and some puzzles available on GeeksforGeeks.
15 students were shortlisted for the next round.
Round 3 (Technical Round): Each interviewer again asked different sets of questions. One interviewer asked questions on ML, AI, Cryptography, Basic Concepts of OOPS and OS and did not ask any project related questions. Some other interviewers asked questions on Projects in a resume, some basic questions on subjects, and asked a big question like Trapping Rainwater and held a gripping discussion on the question and optimizations.
I had mentioned Tic Tac Toe as one of my projects on my resume. The interviewer asked me how I implemented it and what all features it had. After this, he shared a Google Doc in which I had to write code for a question. The question is as follows:
Given a 2 player Tic Tac Toe where 1 player is the computer and the other humans implement the Board class which will store all the information about each player marked positions and will return a winner after a winning move.
There was a basic template of the class with some variables and function signatures. I had to write the code for the function to mark the position where the X or O is placed and also a function to calculate the winner. This involved writing a basic function with O(n) time complexity to check the winner and then optimising it to get the winner in O(1) time. After this, he gave me a situation where due to some error the computer might miss playing its turn leading to an invalid board state. I needed to only design a method to find if the board is valid or not at a particular time.
After this, I asked the interviewer some questions regarding the work culture and projects at Samsung and ended the interview. The interview lasted about 25 minutes for me but some people had interviews for up to 45 minutes.
Finally, 9 students were selected for Internships, and I was one of them.
Practice the important questions in various sites like GeeksforGeeks, Leetcode, InterviewBit as most of the questions are repeated from these sites.