이 레슨과 관련된 학습 키워드
컴퓨터 과학 & 프로그래밍 — 문제 해결의 도구 → 알고리즘 — 문제 해결의 체계적 접근 → 알고리즘 — 문제 해결의 체계적 접근 → 기초 알고리즘
Learn complexity analysis, problem classification, approach strategies, inductive thinking, and counterexample finding.
여러분, 프로그래밍이 뭐라고 생각하세요?
코드를 작성하는 거라고요? 사실은 문제를 해결하는 게 진짜 핵심이에요.
같은 문제도 어떻게 접근하느냐에 따라 1초에 풀 수도, 하루가 걸릴 수도 있어요.
슬라이드 왼쪽을 보세요. 비체계적 접근이에요.
바로 코드부터 짜면 에러가 나고, 수정하고, 또 에러가 나죠.
결국 3시간을 써도 풀지 못하는 경우가 많아요.
이제 가운데를 보세요. 알고리즘적 사고로 전환하는 과정이에요.
첫째, 문제가 뭔지 정확히 분석해요. 둘째, 어떻게 풀지 전략을 세워요.
셋째, 빅오 컴플렉시티로 충분히 빠른지 검증해요.
넷째, 그때서야 코드를 짜고 테스트해요.
오른쪽 결과를 보세요. 체계적으로 접근하면 20분이면 정확하게 풀려요.
이 차이가 바로 알고리즘적 사고예요.
아래 주황색 박스를 보시면 FAANG 면접 통계가 있어요.
구글은 45분 면접 중 30분이 알고리즘이에요. 메타는 두 라운드가 알고리즘이고요.
즉, 코딩 실력이 아니라 사고력을 본다는 뜻이에요.
맨 아래 다섯 가지 메타 스킬을 보세요.
복잡도 분석, 문제 분류, 접근 전략, 귀납적 사고, 반례 검증이에요.
이 다섯 가지가 모든 알고리즘 학습의 기반이에요.
수학자 폴리아는 1945년에 이미 문제 해결의 4단계를 정리했어요.
이해하고, 계획 세우고, 실행하고, 되돌아보는 거예요.
우리도 이 프레임워크를 바탕으로 알고리즘을 배울 거예요.
이번 레슨에서는 코드보다 "어떻게 생각하는가"에 집중합니다.
선생님: 알고리즘적 사고가 왜 중요한지 정리했는데요. 궁금한 점 있나요?
학생: 선생님, 알고리즘적 사고랑 그냥 코딩이 뭐가 다른 거예요?
선생님: 좋은 질문이에요. 차이는 "먼저 생각하느냐, 먼저 짜느냐"예요. 바로 코드부터 짜면 수정을 반복해요. 분석 먼저 하면 한 번에 풀려요.
학생: 아, 설계를 먼저 하면 오히려 더 빠른 거네요.
선생님: 맞아요. 돌아가는 것 같지만 결과적으로 훨씬 빨라요. 실무에서도 마찬가지예요.
학생: FAANG 면접에서 사고력을 보는 이유도 그래서군요.
선생님: 정확해요. 회사는 어려운 문제를 체계적으로 풀 수 있는 사람을 원해요.