본문 바로가기

Review57

[WEEK02] 완전탐색 1) Brute Force : for 문이나 if 문을 활용하여 모든 경우의 수 알아봄 2) 비트마스크 (Bitmask) : 각 원소가 A인지 B인지 두가지 상태만을 가질 때 0, 1로 구분하여 배열을 저장 3) 재귀함수 4) 순열 5) BFS, DFS 6) 백트래킹 : 현재 상태에서 가능한 모든 선택지를 다 따라 들어가며 탐색하는 알고리즘 : 원하는 값과 불일치하는 부분이 생기면 탐색을 진행하지 않고 전단계로 돌아감 ex) 오목에서 앞으로 진행될 수를 생각해보고 가장 적절한 자리에 두는 것 대표문제 : N과 M cf) DFS(Depth First Search)와 백트래킹의 차이점 : 백트래킹은 불필요한 탐색을 하지 않음 : DFS는 모든 경우의 수를 탐색함 2022. 10. 3.
[WEEK02] 재귀함수 [Do it 자료구조와 함께 배우는 알고리즘 입문 with 파이썬] + [이것이 취업을 위한 코딩테스트다] 개념정리 재귀함수 (Recursive Function) : 어떤 이벤트에서 자기 자신을 포함 -> 다시 자기 자신을 사용하여 정의 : factorial(n)이 factorial(n-1)을 호출함 => 재귀 호출 : 재귀함수의 수행은 스택 자료구조와 동일함 (함수를 계속해서 호출했을 때 가장 마지막에 호출한 함수가 먼저 수행을 끝내야 그 앞의 함수 호출이 끝남) => 따라서 재귀적으로 함수를 표현할 때는 반드시 if 문을 이용하여 종료조건을 구현해야함 : 재귀 함수를 활용하여 소스코드를 작성하는 것은 수학의 점화식과 유사함 직접재귀와 간접 재귀 직접재귀 : 자기 자신과 똑같은 함수 호출 간접재귀 : .. 2022. 10. 3.
[WEEK02] 스택(Stack)과 큐(Queue) + Collections.deque [Do it 자료구조와 함께 배우는 알고리즘 입문 with 파이썬] + [이것이 취업을 위한 코딩테스트다] + [Introduction to Algorithms] 개념 정리 1. 스택 (Stack) : 데이터를 임시 저장할 때 사용하는 자료구조 : 접시 쌓기에 비유할 수 있음 : 후입 선출 (Last In First Out) : 스택 사용시 "별도의 라이브러리를 사용할 필요 없음" => 기존 리스트로 사용하면 됨 : 스택에 데이터를 넣는 작업을 푸시(push) / 데이터를 꺼내는 작업은 팝(pop) : append() : 리스트 가장 뒤쪽에 데이터를 삽입 : pop() : 리스트 가장 뒤쪽에서 데이터를 꺼냄 : 윗부분 - top / 아랫부분 - bottom 용어정리 stk : 스택배열 (list형 배열).. 2022. 10. 1.
[Week02] 분할정복 (Divide & Conquer) 분할정복? : 문제를 더 이상 나눌 수 없을 때까지 나눈 후 각각 풀고 그 후 다시 합병하여 문제의 답을 얻는 알고리즘 설계요령 1) Divide : 문제의 분할이 가능할 시, 2개 이상의 문제로 나눔 2) Conquer : 나누어진 문제를 해결 3) Combine : Conquer한 문제들을 결합 대표적인 예 : 병합정렬, 거듭제곱, 피보나치 수열 등 Base Case & Recursive Case 1) Base Case : 더 이상 divide 할 수 없는 상태 2) Recursive Case : 문제들을 나눠야 하는 상황 출처 https://namu.wiki/w/%EB%B6%84%ED%95%A0%20%EC%A0%95%EB%B3%B5%20%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%9.. 2022. 10. 1.
[WEEK01] 예외처리 [점프투파이썬] 개념 정리 오류의 예 : FileNotFoundError : ZeroDivisionError 예외처리 기법 # 기본 구조 try: ... except [발생오류 [as 오류메시지 변수]] # [ ] 기호는 괄호 안의 내용을 생략할 수 있다는 관례적인 표현 1) try ~ except : : 오류 종류에 상관없이 오류 발생시 except 블록을 수행 2) try ~ except 발생오류 : : except 문에 미리 정해놓은 오류 이름과 일치할 때만 except 블록 수행 3) try ~ except 발생오류 as 오류메시지 변수: : 2)에서 오류 메시지 내용까지 알고 싶을때 그 외 예외처리 기법 1) try ~ finally : : finally절은 try문을 수행도중 예외 발생여부에 .. 2022. 9. 26.
[WEEK01] 클래스 [점프투파이썬] 개념 정리 클래스에 구현된 함수 = method (메서드) 클래스로 만든 객체의 객체변수는 다른 객체의 객체변수에 상관없이 독립적인 값을 유지 a = FourCal() b = FourCal() a.setdata(4, 2) b.setdata(3, 7) 생성자 : 객체가 생성될때 자동으로 호출되는 메서드 (초기값 설정가능) def __init__(self, first, second): self.first = first self.second = second 상속 : 어떤 클래스를 만들 때 다른 클래스 기능을 물려받을 수 있게 만드는 것 : 클래스 상속을 위해서는 클래스 이름 뒤에 상속할 클래스 이름을 넣어주면 됨 : class 클래스이름(상속할 클래스 이름) why? 기존 클래스에 함수나 클래.. 2022. 9. 26.