모 회사 면접 후기

엄강우·2022년 7월 26일
0

면접후기

목록 보기
1/1

오늘 면접 복기

  1. 알고리즘

    nums = [1,2,-1,-2, 4, 0, -4] 이라는 배열이 있을때 2개의 수를 뽑아서 0이되는 조합을 만드는 것과 3개를 뽑아서 0이되는 조합을 만드는 방법을 찾아야 합니다. 하지만 3개의 수를 뽑을때도 O(N^2)의 시간복잡도를 가져야 합니다.

    2개의 수를 가지고 하는것은 굉장히 쉬웠고 3개의 수를 가지고 O(N^2)의 시간복잡도를 가지게 하는 방법도 굉장히 쉽긴했는데 면접장이다 보니 머리가 잘 안돌아가서 제대로 답변을 못한게 아쉽습니다.

    nums = [1,2,-1,-2, 4, 0, -4]
    
    ans = []
    for i in range(len(nums)-1):
        nums_dict = {}
        for j in range(i+1, len(nums)):
            if -nums[j] in nums_dict:
                x, y = nums_dict[-nums[j]]
                ans.append([x, y, j])
            nums_dict[nums[i]+nums[j]] = [i, j]
    
    print(ans)
  2. js 에서 object에서 프로퍼티의 존재 유무 확인할때 in을 사용하는 것과 hasOwn을 사용하는 것의 차이가 무엇일까?

    in은 접근 할 수 있는 프로퍼티가 있으면 true를 리턴하고

    hasOwn은 상속된 프로퍼티를 확인하고자 할때는 false를 리턴한다.

  3. https 란?

    • http의 보안 버젼이다.
    • 공개키 암호화와 악수공유 비밀키를 통해 중간에 데이터가 가로채 지더라도 데이터에 대해 알 수 없습니다.
  4. type과 interface의 차이는?

    1. 일단 확장하는 방법이 다르다.

      interface는 extends로

      type은 &로

    2. interface는 객체만 이용가능하다.

      사실 객체가 아닐때 type선언하는 것은 그냥 변수 옆에 : 타입으로 붙여 주면 된다.

    3. computed Value는 type에만 사용가능하다.

    4. interface는 선언적 확장이 가능하다. 똑같은 이름으로 interface를 정의 해도 에러가 나지 않는다.

      type은 그게 안된다.

    사실 2개를 나눠쓰는 것의 큰 의미는 없고 하나로 통일해서 쓰는 것이 좋으며 interface가 성능이 좋다고 한다.

profile
안녕하세요 프론트엔드 개발자를 꿈꾸는 엄강우입니다.

0개의 댓글