본문 바로가기

PROGRAMMERS16

[프로그래머스] N으로 표현 (LEVEL 3) programmers.co.kr/learn/courses/30/lessons/42895 코딩테스트 연습 - N으로 표현 programmers.co.kr [프로그래머스] N으로 표현 (LEVEL 3) 동적 프로그래밍 문제. 쉽게 생각했는데 생각보다 고민한 문제. 처음에는 dp[n] = dp[n-1] + ['+N', '-N', '/N', '*N'] 계산을 한 결과만 구해나가면 될줄 알았지만, dp[n] = dp[i] + dp[n-i]; i : 1~n-1 라고 생각하고 풀어야한다. 조건이 많아서(max deep이 8) DFS로 풀어도 시간초과가 나지 않고 풀리긴 한다. def solution(N, number): adds= lambda x,y: map(int,[x+y,x-y,x/y,x*y]) dp = [0] .. 2021. 4. 18.
[프로그래머스] - 사칙연산 (LEVEL 4) 프로그래머스 사칙연산 파이썬 programmers.co.kr/learn/courses/30/lessons/1843?language=python3 코딩테스트 연습 - 사칙연산 ["5", "-", "3", "+", "1", "+", "2", "-", "4"] 3 programmers.co.kr 숫자와 '+', '-'만 있는 연산에서 결합 법칙이 성립하지 않는 '-'에 대해 연산 순서에 따른 결과의 최댓값을 출력하는 문제 1. 연산 f의 최댓값을 구해야 한다 2. f가 덧셈만으로 이루어져 있을 경우 순서 그대로 연산하면 되기 때문에 return eval(f) 3. f = f(x)-f(y)일 때, 최댓값은 min(f(y))인 경우 4. f = f(x)-f(y) = f(x) - (y - f(z)) 일 때, 최댓값.. 2021. 3. 19.
[프로그래머스] - 매출 하락 최소화 (LEVEL 4) programmers.co.kr/learn/courses/30/lessons/72416?language=python3# 코딩테스트 연습 - 매출 하락 최소화 CEO를 포함하여 모든 직원은 팀장 또는 팀원이라는 직위를 가지고 있으며 그림에서는 팀장과 팀원의 관계를 화살표로 표시하고 있습니다. 화살표가 시작되는 쪽의 직원은 팀장, 화살표를 받는 programmers.co.kr 트리dp 문제였다. dp문제라고 생각하긴 했지만 각 팀장이 참석 하는경우/하지 않는 경우로 나누어 풀 생각을 하지 못했다. 아직 dp 문제에 더 익숙해질 필요가 있을 것 같다. dfs로 먼저 리프노드까지 탐색 후 리프노드부터 최적해를 찾아 올라온다. root 노드부터 연결된 노드부터 탐색해가면서, 리프노드에서는 해당 노드를 선택했을 경.. 2021. 3. 16.
[프로그래머스] - 지형 이동 (LEVEL4) programmers.co.kr/learn/courses/30/lessons/62050 코딩테스트 연습 - 지형 이동 [[1, 4, 8, 10], [5, 5, 5, 5], [10, 10, 10, 10], [10, 10, 10, 20]] 3 15 [[10, 11, 10, 11], [2, 21, 20, 10], [1, 20, 21, 11], [2, 1, 2, 1]] 1 18 programmers.co.kr 처음에는 각각의 그룹 sets 를 만들어내고, 각 sets[i]마다 다시 사다리를 만드는 비용이 최소로 드는 지점을 탐색하는 식으로 코드를 짰지만 시간초과. 지형간의 높이 차가 cost라고 했을 때, height >= cost 일 경우에는, 비용이 0이라는 점, 최소 비용문제라는 점을 생각해보면 heapq.. 2021. 3. 11.