Mgcllee

[프로그래머스] 여행 경로

코딩테스트 연습 - 여행 경로 문제 바로가기 문제 해결 방법 문제 조건에서 주어진 티켓을 모두 사용할 수 있다고 보장하였으므로 완전 탐색 중 깊이 우선 탐색(DFS)를 사용해 문제를 해결하고자 하였습니다. 탐색을 진행하기 전, 티켓을 중복해서 사용할 수 없으므로 이용한 공항을 기록하고자 하였습니다. 문자열을 key 값으로 한 해시 ...

[자료구조] 균형 이진 탐색 트리 - AVL 트리

이진 트리의 약점 이전 포스트에서 이진 트리에 대해 설명했었습니다. 그리고 이진 트리의 약점으로 모든 노드가 1개의 자식만 갖게되어 일렬로 만들어진 트리가 있었습니다. 이 트리의 이름은 편향 이진 탐색 트리라고 부릅니다. [편향 이진 탐색 트리] 이러한 트리를 개선하고자 만들어진 자료 구조가 균형 이진 탐색 트리 입니다. 이진 트리가 균...

[백준][15686] 치킨 배달

이 포스트는 백준 사이트의 치킨 배달 문제 풀이입니다. 문제 첫 번째 시도(실패) 여러 개의 치킨 가게 중 M 개만 선택하였을 때, 도시의 치킨 거리가 최소인 경우를 구해야 합니다. 여기서 M 개의 가게 선택을 위해 조합을 사용하고 조합으로 선택된 가게들에서 집들까지의 최소 거리를 반복해서 갱신해 정답을 구하고자 하였습니다. #inc...

[프로그래머스] 정수 삼각형

코딩테스트 연습 - 정수 삼각형 문제 바로가기 문제 설명 삼각형의 위쪽 꼭지점에서 아래쪽으로 이동하면서 각 숫자를 합해 가장 큰 숫자를 만드는 문제입니다. 이 문제는 그림을 그렸을 때, 이진 그래프처럼 보이는 문제이지만 그래프를 만들 필요도 없이 메모이제이션 기법으로 간단하게 풀 수 있습니다. 시간 복잡도 실패 처음 문제를 접근할 때...

[알고리즘] 플로이드 워셜(Floyd Warshall)

이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) 를 참고해 작성한 포스트입니다. 이전 포스트 에서 다익스트라 최단 경로 알고리즘에 대해서 설명했습니다. 다익스트라 알고리즘은 한 지점에서 다른 지점까지 의 최단 경로를 빠르게 구할 수 있는 알고리즘 이였습니다. 만약 그래프에 존재하는 N 개의 점이 서로의 최단 경로를 모두 알고 싶다면...

[자료구조] 이진 탐색 트리

이진 트리를 이용한 탐색 이전 포스트에서 이진 트리에 대해 알아보았습니다. 이번 포스트에서는 이진 트리를 활용한 이진 탐색 트리에 대해 알아보겠습니다. 이진 탐색 트리는 다음과 같은 특징이 있습니다. 키 중복 없음 특정 노드의 왼쪽 서브 트리는 특정 노드 보다 작은 키 값만 존재 특정 노드의 오른쪽 서브 트리는 특정 노드 보다 큰 키...

[SideProject] 어째서 코드를 깨끗하게 만들어야할까

프로그램의 소스 코드는 한 번에 완벽하게 작성할 수 없습니다. 팀 프로젝트에서는 한 팀원이 작성한 코드를 다른 팀원이 읽을 수 있고 개인 프로젝트에서도 기능을 추가하거나 수정하다 보면 이전 코드를 읽을 때가 있습니다. 여기서 이전 코드를 이해하는데 시간이 소모될 수 있고 최악의 경우, 매번 같은 코드 이해하고자 처음부터 다시 읽어야 될 수 있습니다. ...