본문 바로가기

Til23

TIL : 다익스트라 알고리즘 (5) 💻 알고리즘 ✔️ 다익스트라 알고리즘 그래프 이론 알고리즘 중 목적지에서 다른 노드로 이동할 때 최단 경로를 계산하는 알고리즘이다! 이 알고리즘의 특징과 동작 원리는 다음과 같다. 💡 특징 최단 거리를 기록할 추가적인 테이블이 필요하다. 그리디 알고리즘과 비슷한 면이 있다. 💡 동작 원리 출발 노드를 정하고 최단거리 테이블을 초기화한다. 방문하지 않은 노드 중 거리가 가장 짧은 노드를 선택한다. 거리를 계산해서 더 짧은 거리라면 최신화해준다. 2번, 3번 과정을 반복한다. import heapq def dijkstra(graph, start): # 최단거리 계산용 리스트, INF는 무한대를 의미한다. distance = [INF] * (size + 1) distance[start] = 0 queue = .. 2022. 8. 1.
Today I Learned : 파이썬 (4) 🐍 파이썬 ✔️ 2차원 배열 max 값 ### 2차원 배열에서 최대값 찾기 feat. max() arr= [[1,2], [3,4]] max_ =max(max_, max(map(max, arr))) ✔️ 깊은 복사, 얕은 복사 파이썬에는 객체를 2가지로 분류할 수 있다. 바로 mutable과 immutable. list, dictionary, set 이렇게 3가지만 mutable하고 나머지는 모두 immutable이다. 차이는 변경이 가능한지인데, immutable은 값이 같으면 변수명만 다르고 같은 참조를 한다는 것이다. 깊은 복사와 얕은 복사를 이해하기 위해서 이 개념이 필요하다. 얕은 복사란, 변수를 복사했는데 같은 곳을 참조할 때를 말한다. 대입연산자('='), 슬라이싱([:]), copy(), c.. 2022. 7. 17.
Today I Learned : 파이썬 (3) 🐍 파이썬 ✔️ enumerate() '열거하다'라는 뜻을 가진 함수이다! 순서가 있는 자료형(list, set, tuple, dictionary, string)을 입력 받고 인덱스와 원소를 튜플 형태로 리턴! 인덱스와 원소를 다른 변수에 할당하고 싶다면 unpacking을 해야 한다! 시작 인덱스를 바꾸고 싶다면 start에 시작하고 싶은 숫자를 넘기면 된다! ### Example for i in enumerate(['A', 'B', 'C']): print(i) .... (0, 'A') (1, 'B') (2, 'C') ### Example2 for idx, element in enumerate(['A', 'B', 'C']): print(idx, element) .... 0 A 1 B 2 C ### Ex.. 2022. 7. 5.
Today I Learned : 코딩테스트, 파이썬, 소수 (2) 💻 코딩테스트 네부캠을 지원해서 오랜만에 코테를 봤는데 오랜만에 하는 알고리즘이라 그런지 많은 부족함을 느꼈다. 나름 고민해서 분석한 결과 몇 가지 문제점이 있다! ❌ 문제점 시간 배분을 잘 못한다. 파이썬 빌트인 함수 이해도 부족 미숙한 파이썬 문법 절대적인 경험치 부족 당장 다음 코테까지 시간이 부족하므로 당장은 문제를 풀면서 해결하는 수 밖에 없는 것 같다. 🐍 파이썬 set은 집합을 나타내는 자료구조이다! cpp를 주언어로 했었다가 넘어와서 그런지 정말 파이썬이 좋은 언어라고 느낀점은 내가 생각하는 거의 그대로 표현이 된다는 점이다. ex. set(a) - set(b) itertools 라이브러리에 순열(permutation)과 조합(combination)을 만들어낼 수 있다! 사용법은 permu.. 2022. 7. 1.
Today I Learned : MarkDown? (1) 사실 이건 테스트입니당 오늘부터 마크다운으로 글을 작성할겁니당 ㅎㅎ 이렇게 하면 인용이래요 와우~ 이거는요 순서가 있는 리스트 이거는 순서가 없는 리스트에요..!! print('사실 오늘 코드블럭도 이쁘게 수정했어요') print('이걸 읽으실 분은 없겠쬬..?') print('md으로 하루하루 공부한 것을 작성해 보아요!') 신기한거 너무 많다~ 어라 근데 왜 줄이 안바뀌죠..? 아 이렇게 하는거구나 ㅎㅎ 줄 맨 끝에 공백 두번입니당 ^.^ 2022. 6. 22.