Python(3)
-
정렬(선택 정렬, 삽입 정렬, 퀵 정렬, 계수 정렬)
정렬(sorting)이란? 데이터를 특정한 기준에 따라서 순서대로 나열하는 것 정렬 알고리즘의 종류에는 선택 정렬, 삽입 정렬, 퀵 정렬, 계수 정렬이 있다. * 여기서 다루는 예제는 모두 오름차순 정렬을 수행한다고 가정하자 ! 1. 선택 정렬(selection sort) 매번 '가장 작은 것을 선택한다.' 는 의미의 알고리즘 가장 작은 데이터를 앞으로 보내는 과정을 N-1번 반복하면 정렬이 완료된다. array = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8] for i in range (len(array)): min_index = i # 가장 작은 원소의 인덱스 for j in range(i+1,len(array)): if array[min_index] > array[j]: min_index..
2021.02.28 -
그래프(인접행렬/인접리스트)
프로그래밍에서 그래프는 크게 2가지 방식으로 표현할 수 있다. 인접 행렬(Adjacency Matrix) : 2차원 배열로 그래프의 연결 관계를 표현하는 방식 인접 리스트(Adjacency List) : 리스트로 그래프의 연결 관계를 표현하는 방식 1. 인접 행렬(Adjacency Matrix)방식 2차원 배열에 각 노드가 연결된 형태를 기록하는 방식이다. 연결 되어 있지 않은 노드끼리는 무한의 비용이라고 작성한다. 실제 코드에서 논리적으로 정답이 될 수 없는 큰 값 중에서 999999999, 987654321 등의 값으로 초기화하는 경우가 많은데, 이렇게 그래프를 인접 행렬 방식으로 처리할 때는 다음과 같이 데이터를 초기화한다. # 인접 행렬 방식 INF = 999999999 # 무한의 비용 선언 # ..
2021.02.19 -
알아두면 좋은 것 !!
⭐ 문제 풀이를 위한 중요 테크닉 !! 1. 방향(direction)을 설정해서 이동하는 문제 유형 dx, dy라는 별도의 리스트를 만들어 방향을 정하는 것이 효과적 !! 예) 현재 캐릭터가 북쪽을 바라보고 있을 때 북쪽으로 이동하기 위해서 x와 y좌표를 각각 dx[0], dy[0] 만큼 더한다. 즉, 현재 위치에서 (-1,0)만큼 이동시키는 것이다. 이처럼 코드를 작성한다면, 반복문을 이용하여 모든 방향을 차례대로 확인할 수 있다는 점이 유용하다 !! 2. 파이썬은 다른 언어에 비해 구현상의 복잡함이 적은편이지만, 데이터 처리량이 많을 때는 꼭 메모리 제한을 고려하자 !! 일반적인 코딩테스트에서는 메모리 사용량 제한보다 더 적은 크기의 메모리를 사용해야 한다는 점 정도만 기억 !! 리스트를 이용할 때 ..
2021.02.19