[TIL] 2023.04.11 Programmers_최빈값 구하기, 인텔리픽 모의면접

Today I Learned

  • Programmers 문제 풀기
  • 17시 인텔리픽 모의면접

 


Programmers 문제 풀기

최빈값 구하기

나의 풀이

function solution(array) {
    // array의 최댓값 길이만큼 o으로 구성된 배열을 만듦
    const numArr = Array(Math.max(...array) + 1).fill(0);
    
    // array의 정수마다 numArr의 index로 접근하여 값을 하나씩 더함
    for ( const num of array ) {
        numArr[num] += 1
    };
    
    // numArr에서 최댓값의 index를 구해서 최빈값을 구하고
    // indexOf와 lastIndexOf로 최빈값이 여러 개인 경우를 예외 처리 함
    return numArr.indexOf(Math.max(...numArr)) !== numArr.lastIndexOf(Math.max(...numArr)) 
    	    ? -1 
            : numArr.indexOf(Math.max(...numArr));
}

이번 풀이의 접근 방식은 배열의 index === 해당 정수라는 점.

 


인텔리픽 모의면접 질문 리스트

  • 자기소개
  • 프로젝트 소개, 담당 역할, 기억에 남는 트러블슈팅
    • Next.js rewrites 기능 이용해서 api key 숨겼다 -> api key를 왜 숨겨야 할까요?
  • next.js 왜 사용? 
    • next.js 쓰면 왜 렌더링 속도 개선 가능할까?
  • 자료구조 아는 거 있냐 (스택은 그래프탐색에 사용)
    • 모른다 하면 개념 하나 설명해 주면서(ex 스택) 이거를 어떻게 활용할 수 있겠냐
  • 알고리즘 아는 거 있냐
  • TCP/UDP/IP 설명해줘라
  • 브라우저 렌더링 과정
  • 리액트는 왜 사용할까
    • virtual dom과 real dom 차이 설명
  • 리액트 쿼리는 왜 사용할까요?
    • 캐싱 기능 써 본 적 있냐? 없다. 그럼 어디에 쓰면 좋을까요?
  • 리덕스 리코일 중 왜 리코일 사용, 장점이 뭐냐

 


회고

인텔리픽 모의면접 두 번째로 봤는데 저번 면접 때는 확실히 운이 좋아서 다 아는 개념들만 질문이 나왔던 거 같다. 오늘은 자료구조->알고리즘->TCP 순서로 내가 모르는 부분만 연속해서 질문을 받으니까 이때 좀 힘들었다.. 그리고 꼬리질문 형태로 질문을 많이 받았고, 내가 모른다고 대답했을 때 면접관님이 개념을 설명해 주시면서 이걸 희령님이라면 어디에 활용할 거 같은가요? 같은 면접 방식도 처음이었다.

 

오늘 확실히 느낀 건 자료구조를 공부해야겠다는 점. 이력서에 매일 알고리즘 풀기 때문에 성실한 사람이라고 어필했으면서 자료구조에 대해 하나도 모르는 건 내가 생각해도 모순적인 거 같다. 일단 개념 위주로 단기간에 공부해보려 한다. 그리고 TCP/UDP/IP 등 네트워크 관련 지식도 공부하는 게 좋겠다는 피드백을 받았다.