레벨 3 3

(파이썬) [알고리즘 문제 풀이] - 정수 삼각형 (프로그래머스)

설명 오늘은 프로그래머스에서 레벨3 문제 정수 삼각형을 풀어 보았습니다. 이렇게 삼각형이 주어집니다. 위에서부터 값을 더해가면서 내려오는데 아래로 내려갈때는 대각선 왼쪽과 오른쪽으로만 이동이 가능합니다. 이렇게 삼각형이 바닥까지 내려왔을때 가장 큰 값을 찾는 문제 입니다. 저는 이 문제를 다이나믹 프로그래밍을 써서 풀어보았습니다. 다이나믹 프로그래밍을 통해 찾은 값들을 저장할 테이블이 필요 꼭대기부터 차례 차례 값 더하기 내려갈수 있는 방향이 2개이기 때문에 겹치는 부분은 값을 비교해서 더 높은 값을 선택 위의 사진에 있는 삼각형을 예시로 들어보면, 이 후에 마지막 줄에서 최대값을 찾아서 리턴해주면 알고리즘은 완성이 됩니다. 코드 def solution(triangle): dp = [[0 for i in..

(파이썬) [알고리즘 문제 풀이] - 야근 지수 (프로그래머스)

문제 설명 회사원 Demi는 가끔은 야근을 하는데요, 야근을 하면 야근 피로도가 쌓입니다. 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값입니다. Demi는 N시간 동안 야근 피로도를 최소화하도록 일할 겁니다. Demi가 1시간 동안 작업량 1만큼을 처리할 수 있다고 할 때, 퇴근까지 남은 N 시간과 각 일에 대한 작업량 works에 대해 야근 피로도를 최소화한 값을 리턴하는 함수 solution을 완성해주세요. 풀이 n은 현재 남아 있는 일할수 있는 시간이며 이 시간을 활용하여 works안에 있는 잔업마다 필요한 시간들을 줄여야 합니다. n 시간을 모두 사용하고도 남은 잔업의 시간들은 각각 제곱한 후에 더 합니다. 그리고 이 값을 야근 피로도 라고 부릅니다. 즉, 야근 피로도..

(파이썬) [알고리즘 문제 풀이] - 네트워크 (프로그래머스)

오늘은 프로그래머스에서 레벨3 네트워크를 풀어 보았습니다. 컴퓨터의 개수와 연결에 대한 정보가 담긴 배열이 주어집니다. 서로 연결되어 있는 컴퓨터들의 모임을 네트워크라고 부르는데 과연 주어진 연결에서 네트워크가 몇개나 있는 찾아야 되는 문제 입니다. 문제를 풀기 위해 필요하다고 생각되는 것들을 적어 보았습니다. 컴퓨터 간의 연결을 저장해두는 자료구조가 필요 각 컴퓨터 마다 어떤 컴퓨터와 연결 되어 있는지 체크 연결들을 저장해두는 자료구조로 dictionary를 썼습니다. 각 컴퓨터가 key가 되며 해당 컴퓨터에 연결된 컴퓨터들의 집합은 value가 됩니다. 저는 이 연결된 컴퓨터들의 집합을 set에 담았습니다. 예시) n = 3, computers = [[1, 1, 0], [1, 1, 0], [0, 0,..