Loading...
2022. 1. 29. 18:49

다익스트라(dijkstra) 알고리즘

그래프에서 최단경로를 탐색하는 알고리즘 특정 하나의 node에서 다른 모든 node로 가는 최단 경로를 알려줌 link의 가중치가 음수인 경우는 고려하지 않음 하나의 최단 거리를 그 이전까지 구했던 최단 거리 정보를 사용하여 구함 --------------------------------------------------------------------------------------------------------------------- 1. 출발노드를 설정 2. 출발 노드를 기준으로 각 노드의 최소 비용을 저장 3. 방문하지 않은 노드 중에서 가장 비용이 적은 노드를 선택 4. 해당 노드를 거쳐서 특정한 노드로 가는 경우를 고려하여 최소 비용을 갱신 5. 위에서 3.과 4.번을 반복 ----------..

2022. 1. 28. 20:06

2차원 배열 알고리즘 문제가 나오면 반드시 생각해야하는 스킬들

1. 직사각형에 자연수를 순서대로 집어넣기 rows * columns 직사각형에 1,2,3,...을 순서대로 집어넣을려면 matrix = [ [row * columns + (column+1) for column in range(columns)] for row in range(rows)] rows = 4 columns = 3 matrix = [[row*columns + (columns+1) for column in range(columns)] for row in range(rows)] print(matrix) [[1,2,3],[4,5,6],[7,8,9],[10,11,12]] 2. 직사각형 배열에서 열을 뽑는 방법 j+1열을 뽑고 싶으면 [row[j] for row in matrix] j = 2 [row[j..

2022. 1. 26. 20:37

그래프 알고리즘 문제의 기본 스킬1

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/86971 코딩테스트 연습 - 전력망을 둘로 나누기 9 [[1,3],[2,3],[3,4],[4,5],[4,6],[4,7],[7,8],[7,9]] 3 7 [[1,2],[2,7],[3,7],[3,4],[4,5],[6,7]] 1 programmers.co.kr n개의 송전탑이 전선을 통해 하나의 트리형태로 연결되어 있습니다. 당신은 이 전선들 중 하나를 끊어서 현재의 전력망 네트워크를 2개로 분할하려고 합니다. 이 때, 두 전력망이 갖게 되는 송전탑의 개수를 최대한 비슷하게 맞추려고 합니다. 송전탑의 개수 n, 그리고 전선 정보 wires가 매개변수로 주어집니다. 전선들 중 하나를 끊어서 송전탑 개수가 가능한..

2022. 1. 25. 18:48

다중 정렬을 단일 정렬로 바꿔보자

1. 문제 복서 선수들의 몸무게 weights와 복서 선수들의 전적을 나타내는 head2head가 매개변수로 주어집니다. 복서 선수들의 번호를 다음과 같은 순서로 정렬한 후 return하도록 solution 함수를 완성해주세요 1. 전체 승률이 높은 복서의 번호가 앞쪽으로 갑니다. 아직 다른 복서랑 붙어본 적이 없는 복서의 승률은 0%로 취급합니다. 2. 승률이 동일한 복서의 번호들 중에서는 자신보다 몸무게가 무거운 복서를 이긴 횟수가 많은 복서의 번호가 앞쪽으로 갑니다. 3. 자신보다 무거운 복서를 이긴 횟수까지 동일한 복서의 번호들 중에서는 자신 몸무게가 무거운 복서의 번호가 앞쪽으로 갑니다. 4. 자기 몸무게까지 동일한 복서의 번호들 중에서는 작은 번호가 앞쪽으로 갑니다. 2. 제한사항 3. 예시 ..

2022. 1. 23. 23:44

달팽이 배열로 숫자 채워넣기

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/68645?language=python3 코딩테스트 연습 - 삼각 달팽이 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] programmers.co.kr 정수 n이 매개변수로 주어집니다. 다음 그림과 같이 밑변의 길이와 높이가 n인 삼각형에서 맨 위 꼭짓점부터 반시계 방향으로 달팽이 채우기를 진행한 후, 첫 행부터 마지막 행까지 모두 순서대로 합친 새로운 배열을 return하도록 solution함수를 완성하세요. 2. 제한사항 n은 1 이상 1000이하 3. 예시 4. 나의 풀이..

2022. 1. 21. 21:20

규칙을 찾는 알고리즘 문제

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/84512 코딩테스트 연습 - 모음사전 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니 programmers.co.kr 사전에 알파벳 모음 ‘A’,’E’,’I’,’O’,’U’만을 사용하여 만들 수 있는 길이 5 이하의 모든 단어가 수록되어 있다 사전에서 첫번째 단어는 ‘A’이고 그 다음은 ‘AA’이며 마지막은 ‘UUUUU’이다 단어 하나 word가 매개변수로 주어질 때 이 단어가 사전에서 몇 번째 단어인지 return하도록..