더 알아보기/팁

알고리즘을 대하는 올바른 자세 특강 by 박현준 멘토님

은돌1113 2021. 11. 9. 19:52

모범 공부 방법(싸이클)


1. 재미 있어야 계속 풀고, 계속 풀어야 성취감이 쌓인다.
2. 결국 알아야 풀 수 있는 문제들이 많다. 모르면 못푼다.
3. 알고리즘은 머리로만 하는 것이 아니다.
4. 많이 해보는 것이 중요하다.(하루에 2~3개씩 풀어 보는 것이 좋다.)
5. 혼자서 해결하는 능력, 그러나 갈 길은 멀다.

 

알고리즘 테스트 공략법

 

1. 알고리즘을 잘하기 위해서 필요한 3가지 요소

 

1) 배경지식
- 기초적인 프로그래밍 지식과 수학적 지식을 아는 능력

- 부족하면 어떻게 접근할 지 몰라서 솔루션을 열었는데 생판 모르던 외계어가 적혀져 있다.인 상황

- 제일 공부하기 쉬운 능력이지만 지금 단계에서 가장 중요한 능력


2) 구현력
- 본인이 생각한 알고리즘을 그래도 소스코드로 구현하는 과정

- 부족하면 대충 어떻게 하라는지는 알겠는데 코딩을 하려니까 한 줄도 못짜겠다.

내가 지금 뭘 짜고 있는 지 모르겠다. 코드가 10줄 이상 넘어가면 엄두가 안난다. 디버깅(오류를 찾아내고 고치는 과정)을 못하겠다.

 

3) 문제 해결 능력

- 내가 알고 있는 알고리즘, 자료구조, 다양한 테크닉 등을 지금 당면한 문제에 맞게 변형하여 적용하는 것

- 부족하면 어떻게 접근 해야 하는지는 모르지만 솔루션을 열었을 때 아는 알고리즘, 자료구조인 상황

- 중위권에서 상위권으로 가자고 할 때 정말 벽을 뚫는다는 느낌으로 노력이 필요한 시점

 

2. 자료구조, 알고리즘 공간의 적정선

- 코딩 테스트에서 보고자 하는 것은 결국 배경지식 + 구현력

- 코딩 문법, 시/공간 복잡도 분석을 아는 것, 배열/트리/그래프/힙/BST/스택/큐와 같은 기본적인 자료 구조를 아는 것

DFS, BFS, 정렬, 백트래킹, DP, 분할정복, 최단거리까지

- 응시했던 코딩테스트의 반 이상에서 DFS, BFS, 분할정복, 최단거리 안나왔음

- 코딩 테스트는 경시 대회가 아니기 때문에 엄청 어려운 문제는 안나옴. 보통 적당한 수준의 문제가 나오고 문제가 엄청 어렵다면 힌트를 준다.

 

3. 알고리즘 경험담, 정보, 꿀팁

프로그래머스 2~3단계 난이도를 푸는 것이 좋다.

(면접 꿀팁) 안 중요한 회사 -> 중요한 회사 순으로 면접을 보면 면접 연습하다가 자신감이 점점 올라가서 폼이 극에 달한다. 그때 가장 붙고 싶은 회사 면접을 보면 모든 것을 토해낼 수 있다.

 

4. 알고리즘 테스트 vs 개발 공부

- 알고리즘을 잘해야 개발을 잘한다? 절대 아니다.

- 다만 기본적인 구현력과 배경지식이 있어야 회사에 입사할 자격을 얻는다.

- 그 이후에는 자신의 학습 능력에 따라 개발자의 성장이 달려있다.

즉 시험 패스가 목표이고, 끝이 있는 공부이다.(취업 이직 전에 특히)

- 알고리즘은 공부법이 존재하고, 전략/공략법을 알고 있으면 도움이 많이 된다.

- But 개발 공부는 정말 끝이 없다.

 

5. 구조화 방식의 복습

- 구조화란 사고 대상을 구성하는 부분(개별요소)이 각각 어떠한 관련성을 바탕으로 전체를 이루는지를 명확히 규명하여 의미를 파악하는 행위를 말하다.

즉, 구조화는 구성 요소들 간의 관계를 명확히 전체의 의미를 파악하는 것이다.

- 알고리즘을 공부하는 수많은 학생들이 하지 않는 것이 있다. 바로 풀었던 문제를 다시 풀어보는 것이다.

- 알고리즘 문제는 특정 문제를 해결해 나가는 것이다. 그 과정을 입력 값, 처리, 출력 값을 설명해야 한다. 

 

결론은 문제를 받으면 입력 값, 처리, 출력 값으로 나눠서 생각 해보는 것이 좋다.

 

내가 생각 했을 때 알고리즘 특강의 결론은

많이 풀어보고 개념을 익히고 많이 풀어보고 개념을 익히고 많이 풀어봐라

 

https://www.youtube.com/c/%EB%94%A9%EC%BD%94%EB%94%A9%EC%BD%94

 

딩코딩코

개발, IT, 스타트업, 개발자 취업 산업기능요원, 개발자 팁, 백엔드 필수 개념, 백엔드 등등 다양한 주제에 대해 이야기하는 채널입니다!

www.youtube.com