본문 바로가기

Algorithms and Languages/25-1 파이썬 알고리즘 코딩캠프

(5)
[알고리즘 코딩캠프 5일차] 그래프 탐색 알고리즘: DFS, BFS 제가 재학 중인 대학교에서 열린 `파이썬 알고리즘 코딩캠프(25.02.03 ~ 25.02.14)` 수업을 듣고 정리한 글입니다.목차 :그래프 탐색 알고리즘DFSBFS그래프 탐색 알고리즘더보기코테 비율 40% 이상 유형 문제. 굉장히 중요한 유형임.거의 무조건 코테에 한 문제 이상씩은 나온다 보면 됨. 그래프 자료구조는 탐색 알고리즘에 사용됨.`그래프`라는 자료구조를 가지고, `그래프 탐색`이란 알고리즘을 설계할 것.`그래프 탐색 알고리즘` : 시작 정점에서 간선을 타고 이동할 수 있는 모든 정점을 찾는 알고리즘. 일종의 완전 탐색임.깊이우선탐색과 너비우선탐색은 스택과 큐의 개념이 같이 들어감.DFS : 스택(재귀) + 그래프BFS : 큐(덱) + 그래프DFS더보기모든 정점을 방문할 때 유리(사실 모든 정..
[알고리즘 코딩캠프 4일차] 스택, 큐, 덱, 그래프 - 인접 행렬, 인접 리스트 제가 재학 중인 대학교에서 열린 `파이썬 알고리즘 코딩캠프(25.02.03 ~ 25.02.14)` 수업을 듣고 정리한 글입니다.목차 :스택큐덱그래프인접 행렬인접 리스트스택더보기스택은 ADT에서 `push, pop` 두 가지 대표적인 연산을 가짐.후입선출파이썬은 스택이 따로 라이브러리로 정의되어있진 않고,리스트에서 append와 pop으로 정의되어 있음.이 정도만 알아도 나머진 문제푸는 데 지장 없고, 나머진 우리들의 사고력 문제.# 파이썬에서 스택은 리스트로 구현한다.stack = []# pushstack.append(1)stack.append(2)stack.append(3)print(stack)# peek (top에 있는 요소를 삭제하지 않고 조회만 하는 연산)# 따로 peek 연산이 있는 건 아니고,..
[알고리즘 코딩캠프 3일차] 2차원리스트 - 회전, 델타 탐색 제가 재학 중인 대학교에서 열린 `파이썬 알고리즘 코딩캠프(25.02.03 ~ 25.02.14)` 수업을 듣고 정리한 글입니다.목차 :2차원 리스트 2차원 리스트의 회전2차원 리스트의 델타 탐색2차원 리스트의 회전더보기# 1. 반복문을 이용한 시계방향 90도 회전matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9]]'''[ [7, 4, 1], [8, 5, 2], [9, 6, 3]]'''n = 3# rotated_matrix = [[0] * n for _ in range(n)]# for i in range(n):# for j in range(n-1, -1, -1):# rotated_matrix[i][2-j] = matrix[j][..
[알고리즘 코딩캠프 2일차] 정렬과 람다 - sorted(), list.sort(), lambda, 일급 객체, 2차원 리스트 - 초기화, 입력, 순회 제가 재학 중인 대학교에서 열린 `파이썬 알고리즘 코딩캠프(25.02.03 ~ 25.02.14)` 수업을 듣고 정리한 글입니다.목차 :1일차 수업 내용 복습정렬과 람다오름차순&내림차순 정렬sorted()list.sort()커스텀 정렬 lambda일급 객체2차원 리스트 2차원 리스트 초기화2차원 리스트 입력2차원 리스트 순회 1일차 수업 내용 복습더보기더보기더보기컨테이너 자료형들의 분류순서가 있는 자료형 : 인덱스 접근 가능순서가 없는 자료형 : 인덱스 접근 불가능리스트 셋 딕셔너리 : 뮤터블 → 객체는 유지하고 내용을 바꿈나머지(튜플, 문자열) : 이뮤터블 → 객체 자체가 바뀜, 즉 메모리에 새로 할당됨리스트list.pop(i)가 O(N)인건 최악의 경우(pop(0))이면 뒤에 꺼 하나씩 앞으로 밀어야 ..
[알고리즘 코딩캠프 1일차] 뮤터블, 얕은 복사, 문자열, 딕셔너리, 시간복잡도, 입력, 출력, 팁, 파이써닉 - 리스트 컴프리헨션, 패킹, 언패킹, enumerate, Counter 제가 재학 중인 대학교에서 열린 `파이썬 알고리즘 코딩캠프(25.02.03 ~ 25.02.14)` 수업을 듣고 정리한 글입니다.목차 : 뮤터블 vs 이뮤터블할당 vs 얕은 복사 vs 깊은 복사문자열딕셔너리시간복잡도입력출력팁파이써닉리스트 컴프리헨션패킹, 언패킹enumerateCounter주의사항mutable과 immutable의 차이더보기- 파이썬은 모든 게 객체- 3이 어디에 있고 걔를 가리키는 주소값이 있는 느낌- 리스트는 뮤터블이라 뭘 추가해도 똑같은 객체를 가리킴- 문자열은 이뮤터블이라 새로 객체 생성 후 포인터가 변경 → 원래 놈은 참조가 사라지니 가비지 콜렉터가 수거해갈 예정할당 vs 얕은 복사 vs 깊은 복사더보기#1 할당a = [1,2,3]b = ab[0] = 4print(b) # [4, 2..