프로그래밍 면접 이렇게 준비한다 (7) [책리뷰 & Book review]
본문 바로가기

컴퓨터공부/책리뷰 & book review

프로그래밍 면접 이렇게 준비한다 (7) [책리뷰 & Book review]

by Life & study 2024. 1. 4.
반응형

 

프로그래밍 면접 이렇게 준비한다 (7)

[책리뷰 & Book review]

 

 

 

 

 

 

문제 풀이에 사용할 알고리즘과 자료구조에 초점을 맞춘다

 

문제 풀이에 사용할 알고리즘과 자료구조에 초점을 맞춘다

알고리즘과 자료구조는 문제 해결의 기본 도구입니다. 알고리즘은 문제를 해결하는 단계별 절차를 정의하며, 자료구조는 데이터를 효율적으로 저장하고 조작하는 방법을 제공합니다. 따라서 문제를 풀 때는 이 두 가지 요소에 초점을 맞추어야 합니다. 예를 들어, 배열이나 연결 리스트와 같은 기본적인 자료구조부터 시작하여, 그래프, 트리, 해시 테이블 등 보다 복잡한 자료구조를 이해하고 활용하는 능력이 필요합니다. 이러한 자료구조를 활용하여 문제를 해결하는 알고리즘을 설계하고 구현하는 능력은 IT 면접에서 매우 중요합니다.

 

알고리즘과 구현 방법을 알아내고 나면 면접관에게 풀이를 설명한다

알고리즘과 구현 방법을 알아내고 나면 면접관에게 풀이를 설명한다

문제를 해결한 후에는 그 과정을 면접관에게 설명할 필요가 있습니다. 이때 중요한 것은 알고리즘의 작동 원리와 구현 방법뿐만 아니라, 왜 그 알고리즘을 선택하였는지, 어떤 고려 사항이 있었는지를 함께 설명하는 것입니다. 또한, 알고리즘이 어떻게 문제를 해결하는지 전체적인 흐름을 설명하고, 필요하다면 코드 또는 그림을 사용하여 설명하는 것이 좋습니다.


 

 

 

 

 

 

빅오 분석법을 제대로 이해하고 있다면 면접관에게 좋은 인상을 남길수있다

빅오 분석법을 제대로 이해하고 있다면 면접관에게 좋은 인상을 남길 수 있다

빅오 분석법은 알고리즘의 효율성을 분석하는 방법입니다. 이를 통해 알고리즘이 어떤 크기의 입력에 대해 얼마나 빠르게 작동하는지를 예측할 수 있습니다. 빅오 분석법을 제대로 이해하고 있으면, 면접관에게 자신이 문제 해결과정에서 효율성을 중요하게 생각한다는 것을 보여줄 수 있습니다.

 

 

 

 

 

빅오 분석법을 적용하는 방법

1. 입력값이 무엇인지를 확인하고 어떤 것을 n으로 놓아야 할지 결정한다
2. 알고리즘에서 수행해야 할 연산 횟수를 n이 식으로 표현한다
3. 차수가 제일 높은 항만 남긴다.
4. 모든 상수 인수를 없앤다.

 

빅오 분석법을 적용하는 방법

빅오 분석법을 적용하기 위해 다음의 단계를 따릅니다:

입력값이 무엇인지를 확인하고 어떤 것을 n으로 놓아야 할지 결정한다: 이때 n은 주로 문제의 크기나 입력 데이터의 크기를 나타냅니다.
알고리즘에서 수행해야 할 연산 횟수를 n의 식으로 표현한다: 이때 연산은 알고리즘이 수행하는 기본적인 동작을 의미합니다.
차수가 제일 높은 항만 남긴다: 이는 빅오 표기법이 최악의 경우를 나타내므로, 가장 큰 영향을 미치는 항만을 고려합니다.
모든 상수 인수를 없앤다: 빅오 표기법은 상수 인수를 고려하지 않습니다. 이는 입력 크기가 충분히 크다면 상수 인수는 무시할 수 있기 때문입니다.


 

 

 

 

어떤 알고리즘이 나을까?
O(lon n) 로그알고리즘
O(n) 선형알고리즘
O(n log n)  준선형 알고리즘
O(nc) 다항식 알고리즘
O(cn) 지수알고리즘
O(n!) 팩토리얼 알고리즘

 

알고리즘의 선택은 문제의 특성과 요구 사항에 따라 달라집니다. 알고리즘의 효율성을 판단하는 빅오 표기법을 기준으로, 다음과 같은 알고리즘이 있습니다:

O(log n): 로그 알고리즘. 이진 검색 등이 이에 해당합니다.
O(n): 선형 알고리즘. 단순 검색 등이 이에 해당합니다.
O(n log n): 준선형 알고리즘. 병합 정렬, 힙 정렬 등이 이에 해당합니다.
O(n^c): 다항식 알고리즘. 버블 정렬, 삽입 정렬 등이 이에 해당합니다.
O(c^n): 지수 알고리즘. 여행하는 판매원 문제의 브루트포스 해법 등이 이에 해당합니다.
O(n!): 팩토리얼 알고리즘. 여행하는 판매원 문제의 브루트포스 해법 등이 이에 해당합니다.
이 중에서 어떤 알고리즘을 선택할지는 문제의 특성, 입력 데이터의 크기, 효율성 요구 사항 등을 고려하여 결정합니다.

 

 

 

면접관에게 최대한 대화를 해서 힌트를 얻어내 보자

 

면접관에게 최대한 대화를 해서 힌트를 얻어내 보자

문제 해결 과정에서 면접관과의 소통은 매우 중요합니다. 면접관은 문제를 제시하는 동시에 문제 해결을 위한 중요한 힌트를 제공할 수 있습니다. 따라서 면접관의 말을 잘 듣고, 필요하다면 추가적인 질문을 통해 문제를 더 잘 이해하려 노력해야 합니다. 이는 면접관에게 자신이 문제 해결에 적극적이고, 필요한 정보를 적절하게 수집할 수 있는 능력을 보여줄 수 있습니다.

 

 

 

반응형

댓글