logo

골드만삭스 인터뷰 경험 | 세트 19

GS의 벵갈루루 사무실에서 인터뷰를 가졌습니다. 저는 Java를 사용한 풀스택 개발 경력이 4년입니다. 컨설턴트로부터 전화를 받았습니다.
    1라운드
    1. Java에서는 어떤 개념이 편안합니까? 나는 컬렉션이라고 말했습니다. 그는 어떤 컬렉션 클래스를 사용해 보셨나요? 나는 HashMap ArrayList와 HashSet을 말했습니다.
    2. 언제 Set을 사용하고 언제 목록을 사용합니까? Set은 null이 아닌 고유한 요소를 지원하며 List에는 해당 제약 조건이 없다고 말했습니다. 따라서 고유한 요소를 원할 경우 Set을 사용합니다. 그는 다른 고려 사항을 물었습니까? 컬렉션에 대해 수행할 쿼리 유형을 언급했습니다. 검색처럼요. 그는 어떤 예를 물었나요? 나는 말했다 – 직원 데이터베이스. 직원은 고유해야 하며 일반적으로 특정 순서로 정렬되는 이진 검색 또는 유사한 기술로 목록 및 검색을 사용할 수 있습니다. 하지만 내 생각에 그는 O(1) 조회 시간 답변 또는 Set을 기대하고 있었던 것 같습니다. 나는 HashMap과 HashSet의 작동 방식과 이것이 개발자가 요소의 고유성을 쉽게 달성하는 데 어떻게 도움이 되는지 설명했지만 면접관은 원래 질문에 대한 내 대답을 확신하지 못했습니다.
    3. equals()와 hashCode()의 계약은 무엇입니까? 하나는 재정의되고 다른 하나는 재정의되지 않으면 어떻게 되나요?
    4. 주어진 배열에서 두 번째 최소값 찾기 .
    5. 정렬되고 회전된 배열에서 피벗점을 찾습니다.
    6. 나에게 질문이 있나요?
    2라운드
    1. 귀하의 업무 경험에 대해 간략하게 소개해주세요.
    2. 최근 프로젝트 디자인에 대한 개요를 제공하세요.
    3. 항목 목록이나 테이블이 있고 각 항목에 이익 속성, 할인 속성 등이 있는 UI가 있다고 가정합니다. 여러 사용자가 항목의 상태를 일관되지 않게 유지하는 방법을 확인합니다. 사용자는 속성을 업데이트하거나 다른 웹 서비스에서도 동일한 작업을 수행할 수 있습니다. 항목의 setter 메서드를 동기화할 것을 제안했습니다. 그는 물건을 분류하는 방법을 물었습니다. 나는 항목이 배열 목록에 상주하고 Comparable 인터페이스를 구현한다고 말했습니다. 그는 작동 코드를 요청했습니다. 내가 CompareTo() 메서드 내부에 표현식을 작성했을 때 그는 정렬 기준에 대한 하드 코딩이 있기 때문에 디자인이 유연하지 않다고 말했습니다. 그는 누군가가 다른 속성을 기준으로 정렬하려고 하면 너무 많은 중복 개체를 관리하는 것이 불가능해질 것이라고 말했습니다. 팩토리 메소드 패턴을 사용하면 가능하다고 말씀드렸습니다. 이에 그는 사실상 인터뷰 라운드를 종료했다. 그 사이에 그는 Comparator 인터페이스에 대해 언급했고 나는 그에게 그것이 어떻게 작동하는지 설명했습니다. 기존 클래스를 수정하고 싶지 않다면 좋은 선택이라고 말했습니다. 나는 그가 중복 객체를 필요로 하지 않고 서로 다른 기준에 의한 정렬이 단순히 각 정렬 기준에 대해 하나의 클래스로 다른 클래스에서 Comparator를 구현한 다음 해당 Comparator 구현으로 Collections 클래스의 sort() 메서드를 호출함으로써 수행될 수 있기 때문에 비교() 메서드의 구현을 기대하고 있다고 생각합니다.
    4. 나에게 질문이 있나요?
    그날 떠나라고 했습니다. 조언: 요청을 받지 않았거나 디자인 패턴 문제를 해결한 경험이 없는 한 디자인 패턴을 언급하지 마십시오. 면접관의 말을 경청하고 주의를 기울이십시오. 힌트를 제공합니다. 1라운드에서도 회전 배열 문제에서 실수를 저질렀습니다. 그는 내 코드가 실패할 테스트 케이스를 제공했습니다. 함정을 바로잡았습니다. 면접 전날 충분한 수면을 취하세요. 골드만삭스의 모든 연습문제 ! 퀴즈 만들기