패스트캠퍼스 챌린지 19일차
알고리즘 유형별 문제풀이
실제로 현업에서는 알고리즘 및 자료구조를 사용하지는 않지만 알고리즘으로 코딩 테스트를 보는 이유는?
-> 개발이란 무엇인지를 이해하고 있는가에 대해서 알아보는 시간
왜 알고리즘으로 코딩테스트를 하는가?! => 실제 개발자가 하는일과 공통점이 있기 때문
개발자가 하는 일 | 알고리즘 문제를 푸는 과정 |
1. 무엇을 만들어야하는지 파악 | 문제이해 |
2. 기능성, 효율성을 따져서 만들 방법 찾기 | 기능성,효율성을 따져 문제가 원하는 정답 구현 |
3. 프로그래밍을 통해서 직접 구현하기 | 프로그래밍을 통해서 직접 구현 |
• 필수 테크닉
- 정렬
- 문자열 처리
- DP(Dynamic Programming)
- Dijkstra (다익스트라)
- BFS & DFS
- 완전 탐색
- 이분 탐색
• 높은 난이도 알고리즘
- 배열에서의 DP
- Tree 에서의 DP
- 투 포인터
- 위상 정렬
• 자료구조
- HashMap
- Deque (Queue)
- Stack
- Priority Queue
- Dynamic Array
좋은 습관 길들이기
1. 문제를 올바른 순서로 이해한다.
- 시간, 메모리 제한을 정확히 파악
- 문제 전체를 꼼꼼히 읽고 이해한다.
- 제공되는 정보(변수) 정리
- 예제 데이터에 대해 이해 (손으로 직접 테스트 추천)
- 가능한 최대, 최소 정답에 맞는 데이터를 직접 생성
- 키워드가 되는 단어들을 체크 (현재는 어떤 키워드인지 감을 못잡겠지만 계속해서 문제를 풀이하며 감을 익힌다)
2. 시간과 공간복잡도를 계산한다
- 어떠한 알고리즘 & 자료구조를 사용함을 생각하면서 해당 알고리즘 & 자료구조의 시간/공간 복잡도를 떠올린다
- 시간/공간 복잡도를 떠올리고 가장 최선의 시간/공간 복잡도의 자료구조 & 알고리즘을 사용한다.
3. 코드를 효율적으로 함수화 해서 구현한다.
- 중복되는 코드, 자주 사용되는 코드를 함수화 하여 구현한다
4. 코딩 테스트에서 부분 점수를 챙긴다
알고리즘 문제풀이 전에 어떻게 하면 알고리즘을 집중적이고 효율적으로 풀 수 있을지에 대한 궁금증을 해결한
강의 편이였다 해당 강의를 유의하면서 알고리즘 문제를 해결해 나가야겠다
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr