All Articles

알고리즘 면접에서 살아남기

면접자는 알고리즘 공격을 시전했다.

## 임의의 정수 n이 있을때 1~n까지의 소수의 개수를 구하세요

바름은 패배… 할뻔했지만 살아났다!

대처요령을 알기 때문이지.

  1. 문제를 확실히 이해하라.

    • 문제 낸 사람에게 확인하라. 이해가 안되면 또 물어봐라. 문제를 이해시키는게 면접관의 역할이다.
    • 2번 3번 물어라. 그래야 올바른 접근을 한다. 그리고 면접관을 풀이과정에 동행시켜야 면접관이 나에게 좀더 집중한다.
    • 소통이 안되면 요구자의 필요과 상관없는 것을 개발하는 경우가 생긴다.
    • input output 확실히 해라.
    • 어떤 값을 넣었을때 어떤 값이 나올지 알아야 로직을 짠다.
  2. 코딩은 나중에, 접근법을 얘기하라.

    • 바로 코딩에 들어가면 코딩하다가 막히는 부분에서 다시 생각을 하게 된다.
    • 코딩은 면접관과 얘기하며 발전시킨 로직을 옮겨적는것 뿐이다.
    • 자기가 풀어가는 방법을 보는거지 정답 맞추기를 보는 시간이 아니다.
    • 풀어가는 과정의 커뮤니케이션이 중요하다.
    • 무엇을 코딩할지 파악한 다음에 코딩한다.
  3. 고치는 과정이 있는건 괜찮다.

    • 테스트 케이스를 상정해서 대입해 본다.
    • 틀리면 당황하지 말고 ”제가 틀린 부분이 있네요”. 라고 얘기하자. 개발자 뽑는 회사 많다!
    • 풀이과정에서 면접관과 커뮤니케이션이 잘 오갔으면 디버깅과정에 같이 관여를 시킬 수 있다.

알고리즘 해결책을 어떻게 접근하는가?

  1. 어려운건 쪼갠다.

    • AI 초기개념? 17세기 수학자 - 사람의 생각 공식화
    • 예측할수 없어보이는 사람의 생각도 쪼개면 if의 연결로 표현 할 수 있다.
    • 쉬운것부터 생각한다.
  2. 시작점을 그린다.

    • 간단한 도식으로 그려보거나
    • 문제의 상황을 최소한의 범위에서 시작하여 점차 확장시켜본다.
    • 가장 간단한 if statement를 찾는다.
    • 위아래, 왼쪽,오른쪽 등등 다음으로 넘어가기 위한 조건들을 찾아낸다.
  3. 보이는 패턴을 수식으로 표현한다.

    • 그럼 끝.