더북(TheBook)

2.1 제약 조건 분석

기술적 문제를 푸는 것은 단지 알고리즘을 알고 좋은 소프트웨어 시스템을 만드는 것만을 의미하지 않습니다. 면접관은 여러분이 주어진 문제에 어떻게 접근하는지를 알고 싶어 합니다. 많은 사람이 주어진 문제를 명확하게 하는 질문을 하지 않아서 실수하게 됩니다. 이런 사람들은 한 번에 많은 것을 가정하고 문제를 풀기 시작합니다. 문제를 풀기 전에 면접관으로부터 얻어야 할 많은 정보를 놓친 채 말입니다.

이 단계에서 문제에 대한 모든 제약 조건을 파악합니다. 완벽하게 정의되지 않은 문제를 풀려고 해서는 안 됩니다. 코딩 인터뷰 문제는 모든 세부 사항이 잘 정리된 시험지와는 다릅니다. 실제로 면접관은 지원자가 질문을 통해 문제를 명확하게 하기를 기대합니다.

예를 들어 숫자를 정렬하는 알고리즘을 작성하라는 문제가 제시되었다고 해봅시다.

1. 처음에 확인해야 하는 정보는 문제에 주어진 데이터의 종류입니다. 면접관이 정수라고 대답한다고 가정해 봅시다.

2. 두 번째로 확인해야 하는 정보는 데이터의 크기입니다. 100개의 정수와 10억 개의 정수를 다루는 알고리즘은 달라질 수밖에 없습니다.

 

숫자 배열의 제약 조건에 관한 기본 질문은 다음과 같습니다.

1. 배열에 원소가 몇 개 있습니까?

2. 각 원소 값의 범위는 무엇입니까? 최솟값과 최댓값은 무엇입니까?

3. 각 원소의 데이터 종류는 무엇입니까? 정수입니까? 아니면 부동소수점 실수입니까?

4. 배열은 고유한 데이터로 구성됩니까?

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.