DP 4

[프로그래머스] 가장 큰 정사각형 찾기 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/12905 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요주어진 2차원 배열 board에서 1과 0으로 이루어진 가장 큰 정사각형의 넓이를 계산하는 문제입니다. 접근 방법이 문제는 동적 계획법(Dynamic Programming, DP)을 사용하여 효율적으로 해결할 수 있습니다. 1. DP 배열 초기화:입력 배열과 같은 크기의 DP 배열을 생성합니다. DP 배열의 각 요소는 해당 위치에서 끝나는 가장 큰 정사각형의 한 변의 길이를 저장합니다.2. 기본 조건 설정:배열의 첫 번째 행과 첫..

[프로그래머스] N으로 표현 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/42895 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  N을 i번 반복하여 만든 숫자를 먼저 dp[i]에 추가합니다. 예를 들어, N = 5이고 i = 3이라면 555라는 숫자를 추가두 개의 작은 집합을 결합하여 새로운 숫자를 만들어냄. 예를 들어, dp[2]에서 55와 dp[1]에서 5를 이용해 dp[3]에서 555, 50, 275 등을 만든다  import java.util.*;class Solution { public int solutio..

[프로그래머스] 보행자 천국 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/1832 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 단순 bfs/dfs로는 시간초과가 발생하는 dp 문제오른쪽 혹은 아래로만 이동할 수 있기 때문에 dp 배열을 dp[m+1][n+1][2]로 생성dp[i][j][0]: (i, j) 위치에 도달할 수 있는 경로 중 위에서 내려온 경로의 수dp[i][j][1]: (i, j) 위치에 도달할 수 있는 경로 중 왼쪽에서 온 경로의 수cityMap이 0일 때(자동차가 자유롭게 이동할 수 있는 경우) dp[i][..

[프로그래머스] 코딩 테스트 공부 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/118668 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  DP로 해결가능한 문제입출력 예#2로 예시를 들면 시작점은 0, 0 이고 최대 값은 10, 11 이기 때문에 10, 11 사이즈의 배열을 만들고 MAX_VALUE로 초기화 한다그리고 순차적 탐색을 하면서 단순히 공부만 했을 때 걸리는 시간과 문제를 풀었을 때 걸리는 시간을 비교하여 더 적은 값을 저장한다class Solution { public int solution(int alp, in..