[Java] 백준 2473 세 용액 / G3
·
백준
문제https://www.acmicpc.net/problem/2473 문제 해결 전략백준[2470] 두 용액(https://www.acmicpc.net/problem/2470)과 굉장히 유사한 문제다. 기존 두 용액 문제는 합의 절대값이 가장 낮은 두 용액을 선택하는 문제라면, 이 문제는 합의 절대값이 가장 낮은 세 용액을 고르는 것이다. 이 문제도 역시 이중 포인터로 접근할 수 있었다.이중포인터 -> left, right index를 각각 0, array.length-1로 주고 left  다만 이 문제만의 다른 점이 있다면 가장 왼쪽값을 fix하고 left를 (fix한 값 + 1 ), right를 array.length -1 로 하여 이중 포인터로 접근한다는 것이다. fix한 왼쪽 값은 [0,array..
[Java] 백준 2342 Dance Dance Revolution / G3
·
백준
문제https://www.acmicpc.net/problem/2342   입/출력입력 수열의 길이가 100000을 넘지 않는다는 것을 알 수 있다.이 문장을 보고 Bottom up dp로 풀어도 되겠다는 생각을 했다.문제 해결 전략문제를 보면 전 단계에 오른쪽/왼쪽 발의 위치에 따라서 다음 단계에서 드는 최소 힘이 결정된다. 즉, 현 단계가 전 단계에 종속되어 있다는 것이다. 이를 보고 dp로 문제 해결을 하고자 했다.(위에 써놓았듯이, 입력 길이가 100000를 넘지 않는다는 점도 dp로 밀고 가도 되겠다는 확신을 주었다.)머릿속에 드는 생각은발의 위치에 따라서 재귀적으로 함수를 호출하고(2^n), memoization을 통해 호출 횟수를 줄이는 dp.단계 별 발이 있어야 하는 위치의 최솟값을 구해가는..
[Java] 백준 2573 빙산 / G4
·
백준
문제https://www.acmicpc.net/problem/2573 입 / 출력입력첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 나타내는 M개의 정수가 한 개의 빈 칸을 사이에 두고 주어진다. 각 칸에 들어가는 값은 0 이상 10 이하이다. 배열에서 빙산이 차지하는 칸의 개수, 즉, 1 이상의 정수가 들어가는 칸의 개수는 10,000 개 이하이다. 배열의 첫 번째 행과 열, 마지막 행과 열에는 항상 0으로 채워진다.출력첫 줄에 빙산이 분리되는 최초의 시간(년)을 출력한다. 만일 빙산이 다 녹을 때까지 분리되지 않으면 0을 출력한다.문제 해결 전략..