dp

문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/154538?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 방법 처음 문제를 보고 dfs나 bfs를 이용해 문제를 풀이할까 생각했지만, 제한 사항을 보면 x와 y의 크기가 최대 1,000,000까지인걸 보면 시간복잡도를 생각해 시간초과 오류를 고려해 이전 계산 결과를 이용하는 DP를 이용해 풀기로 했다. 동작 시간을 줄이기 위해 for문에서 해당 칸이 -1인 곳은 건너 뛰고 다음 동작을 하게 해준..
문제 설명 https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 문제 풀이 방법 이 문제는 꽤나 유명한 DP문제 중 배낭문제이다. 처음 문제에 접근할 때 DFS으로 접근했지만 시간초과 에러가 발생해 DP 풀이를 참고했다. 물건의 총 갯수 n, 넣을 수 있는 총 무게 maxWeight를 이용해 각 물건을 넣는 시도를 할 때마다 각 무게에서의 최대 가치값을 측정하기 위해 가로가 maxWe..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/12913 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 방법 이 문제는 DP를 이용해 풀어야 하는 문제이다. 나도 그리디를 적용해 문제를 풀어봤지만 실패했다... DP에서 중요한 이전 결과를 저장하고 사용하는 방법을 이용해서 행별 최대값을 land에 다시 할당해서 문제를 풀었다. 두번째 반복문에서 복사한 배열에 0을 넣어주는 이유는 같은 열에 있는 수를 제외한 나머지 수의 합을 비교하기 위함이다. 코드 const solution ..
문제 설명 문제 풀이 방법 1개를 넘는 방법은 1개, 2개는 2개, 3개는 3개, 4개는 5개, 5개는 8개.... 이 패터는 피보나치 수의 패턴이다. 코드 function solution(n) { const dp = (n) => { const dp = new Array(n+1).fill(0); dp[0] = 1; dp[1] = 1; for(let i=2; i
문제 설명 N개의 스티커가 원형으로 연결되어 있습니다. 다음 그림은 N = 8인 경우의 예시입니다. 원형으로 연결된 스티커에서 몇 장의 스티커를 뜯어내어 뜯어낸 스티커에 적힌 숫자의 합이 최대가 되도록 하고 싶습니다. 단 스티커 한 장을 뜯어내면 양쪽으로 인접해있는 스티커는 찢어져서 사용할 수 없게 됩니다. 예를 들어 위 그림에서 14가 적힌 스티커를 뜯으면 인접해있는 10, 6이 적힌 스티커는 사용할 수 없습니다. 스티커에 적힌 숫자가 배열 형태로 주어질 때, 스티커를 뜯어내어 얻을 수 있는 숫자의 합의 최댓값을 return 하는 solution 함수를 완성해 주세요. 원형의 스티커 모양을 위해 배열의 첫 번째 원소와 마지막 원소가 서로 연결되어 있다고 간주합니다. 제한 사항 sticker는 원형으로 ..
문제 설명 아래와 같이 5와 사칙연산만으로 12를 표현할 수 있습니다. 12 = 5 + 5 + (5 / 5) + (5 / 5) 12 = 55 / 5 + 5 / 5 12 = (55 + 5) / 5 5를 사용한 횟수는 각각 6,5,4 입니다. 그리고 이중 가장 작은 경우는 4입니다. 이처럼 숫자 N과 number가 주어질 때, N과 사칙연산만 사용해서 표현 할 수 있는 방법 중 N 사용횟수의 최솟값을 return 하도록 solution 함수를 작성하세요. 제한 사항 N은 1 이상 9 이하입니다. number는 1 이상 32,000 이하입니다. 수식에는 괄호와 사칙연산만 가능하며 나누기 연산에서 나머지는 무시합니다. 최솟값이 8보다 크면 -1을 return 합니다. 문제 풀이 방법 주어지는 N이라는 숫자를 1..
58청춘
'dp' 태그의 글 목록 (2 Page)