수강한 강의
Part 3. 알고리즘 유형별 풀이
Chapter 01 코딩 테스트를 위한 준비
- 강의 소개 및 최종 목표
- 최신 입사 코딩 테스트 분석
- 꿀팁, 좋은 습관
Chapter 02 알고리즘
- 어떻게든 푼다. 완전 탐색 (Brute Force)
학습 후기
이번 강의부터 본격적인 알고리즘 문제를 풀기 시작한다. 코딩 테스트를 위한 준비 강의에서 알고리즘 문제 연습 시 좋은 습관을 알려주었는데
코딩 테스트를 위한 좋은 습관
1. 문제를 올바른 순서로 이해한다.
- 문제를 풀기 위해 키보드에 손 올리는 시점은 늦게
- 문제를 제대로 이해하고
- 예제 데이터, 변수 정리
- 키워드가 되는 단어들 체크
2. 시간과 공간 복잡도를 계산한다.
- 코드를 직접 짜지 않고도 시간과 공간 복잡도를 계산
- 계산하면 이 알고리즘으로 코드를 짤 가치가 있는지 확인할 수 있다.
- 예시) N이 10만 일 때 알고리즘 복잡도가 O(N^2)이면 100억
- 컴퓨터는 1초에 1억 번 연산을 한다고 생각한다.
3. 코드를 효율적으로 함수화해서 구현한다.
4. 코딩 테스트 부분 점수를 챙긴다.
이제부터 항상 알고리즘 문제를 풀기 전에 제약 조건을 확인하고 어떤 알고리즘으로 풀지 생각해보고 시간 복잡도를 미리 생각해보고 코드를 짜는 습관을 들여야겠다.
완전 탐색(Brute Force)
문제를 해결하기 위해 모든 경우의 수를 다 확인하는 방법, 모든 코딩 테스트에서 기본적으로 접근해 봐야 한다. 하지만 이렇게 하면 시간 복잡도 제한을 넘길 수 있다.
알고리즘 문제 연습할 때 main 코드 구성
1. input(): 입력
2. function(): 문제 코드 구현
3. System.out.println(): 출력
완전 탐색의 4가지 문제 유형은 중복을 허용하는지 안 하는지, 순서가 중요한지 안 한지의 조합으로 4가지 경우의 문제 유형이 있으며 각 유형마다 문제 풀기 전 조건을 보고 시간 복잡도를 계산해 풀 가치가 있다면 구현한다. 앞으로는 모든 문제를 풀기 전에 시간 복잡도를 꼭 계산하자.
수강 인증샷
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'공부 > 패스트 캠퍼스 챌린지' 카테고리의 다른 글
코딩테스트 - 패스트캠퍼스 챌린지 26일차 (0) | 2022.02.18 |
---|---|
코딩테스트 - 패스트캠퍼스 챌린지 25일차 (0) | 2022.02.17 |
코딩테스트 - 패스트캠퍼스 챌린지 23일차 (0) | 2022.02.15 |
코딩테스트 - 패스트캠퍼스 챌린지 22일차 (0) | 2022.02.14 |
코딩테스트 - 패스트캠퍼스 챌린지 21일차 (0) | 2022.02.13 |