본문 바로가기
Memo/BootCamp : TIL

[Day 36] [코딩 테스트 준비] 의사 코드, 시간 복잡도, Greedy

by 달의 조각 2022. 7. 28.

학습 주제

 

의사코드(pseudocode)
시간복잡도(Time Complexity)

Greedy

implementation 
- Simulation
- Brute-Force Algorithm
- Binary Search Algorithm

 


 

새롭게 배운 내용

 

 

2022.07.28 - [Etc/Algorithm] - 의사 코드, 시간 복잡도, Greedy

 

의사 코드, 시간 복잡도, Greedy

의사 코드 코드를 작성하기 전에 우리가 일상적으로 사용하는 언어로 논리 흐름을 작성하자! 1. 시간 단축 가능: 헤매는 시간이 단축된다 2. 디버깅 용이: 에러가 발생했을 때, 로직 흐름 파익이

cookiee.tistory.com

2022.07.28 - [Etc/Algorithm] - Implementation - Simulation, Brute-Force, Binary Search

 

Implementation - Simulation, Brute-Force, Binary Search

구현 능력을 보는 대표적인 사례 시뮬레이션: 문제가 요구하는 복잡한 구현 요구 사항을 하나로 빠트리지 않고 코드로 옮긴다 완전 탐색: 모든 경우의 수를 전부 확인하여 문제를 해결한다 완전

cookiee.tistory.com

 

 

 

보강할 내용

 

 

🌿 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번 라인에서 에러가 발생하더라도 적어 둔 의사 코드를 참고하고 다시 차근차근 생각해 보면 쉽게 코드를 수정하고 원하는 결과물을 얻을 수 있었다. 온갖 문법들을 갖다 붙이지 않아서 코드도 깔끔하게 작성됐다!

이전까지는 조금만 막혀도 레퍼런스를 보고 쉽게 길을 찾았었는데, 앞으로는 의사 코드의 장점을 적극 활용해야겠다.

 

 

 

★★★★★

댓글