면접자는 알고리즘 공격을 시전했다.
## 임의의 정수 n이 있을때 1~n까지의 소수의 개수를 구하세요바름은 패배… 할뻔했지만 살아났다!
대처요령을 알기 때문이지.
-
문제를 확실히 이해하라.
- 문제 낸 사람에게 확인하라. 이해가 안되면 또 물어봐라. 문제를 이해시키는게 면접관의 역할이다.
- 2번 3번 물어라. 그래야 올바른 접근을 한다. 그리고 면접관을 풀이과정에 동행시켜야 면접관이 나에게 좀더 집중한다.
- 소통이 안되면 요구자의 필요과 상관없는 것을 개발하는 경우가 생긴다.
- input output 확실히 해라.
- 어떤 값을 넣었을때 어떤 값이 나올지 알아야 로직을 짠다.
-
코딩은 나중에, 접근법을 얘기하라.
- 바로 코딩에 들어가면 코딩하다가 막히는 부분에서 다시 생각을 하게 된다.
- 코딩은 면접관과 얘기하며 발전시킨 로직을 옮겨적는것 뿐이다.
- 자기가 풀어가는 방법을 보는거지 정답 맞추기를 보는 시간이 아니다.
- 풀어가는 과정의 커뮤니케이션이 중요하다.
- 무엇을 코딩할지 파악한 다음에 코딩한다.
-
고치는 과정이 있는건 괜찮다.
- 테스트 케이스를 상정해서 대입해 본다.
- 틀리면 당황하지 말고 ”제가 틀린 부분이 있네요”. 라고 얘기하자. 개발자 뽑는 회사 많다!
- 풀이과정에서 면접관과 커뮤니케이션이 잘 오갔으면 디버깅과정에 같이 관여를 시킬 수 있다.
알고리즘 해결책을 어떻게 접근하는가?
-
어려운건 쪼갠다.
- AI 초기개념? 17세기 수학자 - 사람의 생각 공식화
- 예측할수 없어보이는 사람의 생각도 쪼개면 if의 연결로 표현 할 수 있다.
- 쉬운것부터 생각한다.
-
시작점을 그린다.
- 간단한 도식으로 그려보거나
- 문제의 상황을 최소한의 범위에서 시작하여 점차 확장시켜본다.
- 가장 간단한 if statement를 찾는다.
- 위아래, 왼쪽,오른쪽 등등 다음으로 넘어가기 위한 조건들을 찾아낸다.
-
보이는 패턴을 수식으로 표현한다.
- 그럼 끝.