학습 주제
의사코드(pseudocode)
시간복잡도(Time Complexity)
Greedy
implementation
- Simulation
- Brute-Force Algorithm
- Binary Search Algorithm
새롭게 배운 내용
2022.07.28 - [Etc/Algorithm] - 의사 코드, 시간 복잡도, Greedy
2022.07.28 - [Etc/Algorithm] - Implementation - Simulation, Brute-Force, Binary Search
보강할 내용
🌿 Brute Force vs Dynamic Programing
🌿 Closet-Pair Problems by Brute Force
🌿 Convex-Hull Problems by Brute Force
🌿 Linear Search Algorithm
🌿 Hash Search Algorithm
🌿 Divide-and-conquer algorithm
🌿 Binary Tree vs Binary Search Tree
🌿 Binary Search Algorithm vs Binary Search Tree
회고
의사코드 작성의 필요성과 시간 복잡도, Greedy 알고리즘에 대해 공부했다.
문제를 이해하고 프로그래밍 언어로 변환하는 과정에서 여러 조건들을 고려해야 한다.
지금까지는 이해한 다음 바로 코드로 옮기고, 에러가 발생하면 작성한 코드를 수정하는 방식으로 문제를 풀어 왔었는데, 이렇게 하면 코드를 작성하다 보면 중간에 막히는 부분이 생겨도 유연하게 수정하기가 어렵다. 시간도 더 소모되고, 길을 잃어서 문제가 더 어렵게 느껴지곤 했다.
어제 의사 코드의 중요성을 깨달았는데, 마침 오늘 또 의사 코드에 대해 학습하면서 앞으로 문제를 풀 때 의사 코드를 좀 더 자세하고 친절하게 적는 습관을 들여야겠다 생각했다.
Greedy 알고리즘의 대표 문제라고 할 수 있는 거스름돈 문제를 풀 때 마치 프로그래밍을 우리의 일상어로 하는 것처럼 세세하게 적고 시작했다. n번 라인에서 에러가 발생하더라도 적어 둔 의사 코드를 참고하고 다시 차근차근 생각해 보면 쉽게 코드를 수정하고 원하는 결과물을 얻을 수 있었다. 온갖 문법들을 갖다 붙이지 않아서 코드도 깔끔하게 작성됐다!
이전까지는 조금만 막혀도 레퍼런스를 보고 쉽게 길을 찾았었는데, 앞으로는 의사 코드의 장점을 적극 활용해야겠다.
★★★★★
'Etc > BootCamp : TIL' 카테고리의 다른 글
[Day 40] [코딩 테스트 준비] Algorithm with Math - 순열, 조합 (0) | 2022.08.01 |
---|---|
[Day 37] [코딩 테스트 준비] Greedy, DP (0) | 2022.07.29 |
[Day 35] [자료구조 / 알고리즘] Tree, Graph, Binary Search Tree, Search Algorithm 문제 풀이 (0) | 2022.07.27 |
[Day 34] [자료구조 / 알고리즘] Tree, Graph, Binary Search Tree, Search Algorithm (0) | 2022.07.26 |
[Day 33] [자료구조 / 알고리즘] Stack / Queue (0) | 2022.07.25 |
댓글