오늘의 생각
정신차리고보니 TIL이 밀렸다..
팀 프로젝트며 휴가 등으로 바쁜 일주일을 보내는 와중에 자료구조와 알고리즘에서 배웠던 내용을 정리해본다.
오늘의 키워드
알고리즘Algorithm, 입력, 출력, 유한성, 명확성, 효율성, 시간 복잡도 (Time Complexity), Big-O 표기법, 공간 복잡도(Space Complexity), Greedy Algorithm, 선택 절차, 적절성 검사, 해답 검사, 완전 탐색(Brute force), 순차 검색 알고리즘 (Sequential Search), 문자열 매칭 알고리즘 (Brute-Force String Matching), 선택 정렬 알고리즘 (Selection Sort), 시뮬레이션Simulation, 동적 계획법 (Dynamic Programming), Tabulation, 순열(Permutation), 조합(Combination), 최대공약수 (GCD), 최소공배수 (LCM), 유클리드 호제법, 멱집합, 정규표현식, 리터럴 패턴, 정규식 패턴, RegExp 객체 메소드, String 객체 메소드, Flag, 정규식 패턴, Anchors, Quantifiers
오늘의 학습내용
- 알고리즘의 정의 및 중요성
- 시간 복잡도의 표기법 종류와 Big-O 표기법의 종류
- 공간 복잡도의 정의 및 시간 복잡도와의 연관성
- 탐욕 알고리즘의 문제 해결 단계 및 특징
- 완전 탐색의 한계 및 사용 예시
- 시뮬레이션의 정의 및 사용 예시
- 동적 계획법의 원리 및 성립하기 위한 조건들
- 순열과 조합의 논리 및 예시
- 최대공약수와 최소공배수의 정의 및 유클리드 호제법
- 멱집합의 정의 및 원리
- 정규표현식 문법
어려웠던 keyword / 활용한 질문
Q. 알고리즘이라 명시되기 위한 조건은 무엇인가요?
A. 알고리즘은 출력에 필요한 자료를 입력 받을 수 있고, 알고리즘이 실행됐을 때 한 가지 이상의 결과를 반드시 출력해야 합니다. 또한, 알고리즘은 유한한 명령어를 수행한 후, 유한한 시간 내에 종료해야 됩니다. 이 때 각 단계는 단순하고 명확해야 하며, 모호해서는 안 됩니다. 그리고 알고리즘은 가능한 한 효율적이어야 합니다.
Q. 가변적인 공간이 고정적인 공간보다 상대적으로 중요한 이유는 무엇인가요?
A. 고정적인 공간은 처리할 데이터의 양에 무관하게 항상 요구되는 공간으로서, 프로그램의 성능에 큰 영향을 주지 않기 때문입니다. 가변적인 공간은 처리할 데이터의 양에 따라 다르게 요구되는 공간으로서 프로그램의 성능에 큰 영향을 줍니다.
'개발자 일기 > 일일회고 (TIL)' 카테고리의 다른 글
부트캠프 81, 82일차 (Pre-Project 시작) (0) | 2022.12.18 |
---|---|
부트캠프 80일차 (Section 4 회고) (0) | 2022.12.14 |
부트캠프 75, 76일차 (개발 프로세스와 CI/CD, Proxy) (0) | 2022.12.08 |
부트캠프 74일차 (AWS, CI/CD) (0) | 2022.12.07 |
부트캠프 73일차 (최적화Optimization) (0) | 2022.12.05 |
댓글