프로그래머스 - 산 모양 타일링
·
프로그래머스 문제풀이
https://school.programmers.co.kr/learn/courses/30/lessons/258705 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해설 정삼각형과 정삼각형 두개를 이어붙인 사다리꼴을 이용해 주어지는 모양을 완성할 수 있는 모든 경우의 수를 구해야합니다. 먼저, tops[] 파라미터로 주어지는 그림을 배열로 표현해보겠습니다. 위와 같은 그림은 아래와 같은 배열로 표현할 수 있습니다. 위 배열의 각 요소는 하나의 정삼각형을 의미함으로 인접한 칸과 사다리꼴로 합쳐질 수 있습니다. 여기서, 상층 삼각형의 존재 여부에 따라 사..
Dijkstra Algorithm - 다익스트라 알고리즘 분석
·
Computer Science/Algorithm
다익스트라 알고리즘은 어떤 그래프 내에서 출발노드를 지정하여, 출발 노드에서 모든 노드로의 최소비용을 구하는 알고리즘이다. 다익스트라 알고리즘은 다음과 같은 순서로 진행된다. 출발 노드를 정한다. 출발 노드로부터 갈 수 있는 모든 노드들에 대해 최소비용을 갱신한다. 방문하지 않은 노드중 최소비용의 노드를 선택한다. 선택된 노드로 부터 갈 수 있는 노드들에 대해 최소비용을 갱신한다. 3 ~ 4를 반복한다. 이 루틴을 구현해 보면 정상적으로 실행된다는 결과는 얻을 수 있었지만, 3번, 왜 방문하지 않은 노드 중 최소값을 선택하는지 개념적으로 이해하지 못했다. 이를 이해하기 위해 먼저 아래 그림에서 1번노드를 출발노드로 실행되는 과정을 살펴 보았다. 아래 그림에서 출발노드인 1번 노드에서 갈 수 있는 노드는 ..