[프로그래머스] 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.
[프로그래머스] - 지형 이동 (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.