[백준] 11055번 가장 큰 증가 부분 수열 자바
문제 11055번: 가장 큰 증가 부분 수열 수열 A가 주어졌을 때, 그 수열의 증가 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가 부분 수 www.acmicpc.net 문제 풀이 구글링했다. 역시 DP는 너무 어려워.. 어떻게 이런 방법으로 풀 생각을 하지 라고 생각했다.. 알고리즘은 반복문을 돌면서 dp배열에 현재 인덱스까지의 최대 배열 합을 갱신해나가면서 배열을 채우고 가장 큰 값을 반환하면 되는 거였다. 코드에서 의문이었던 점은 현재 i번째의 배열 값과 그 전까지의(j) 배열 값들을 확인하는 반복문에서 i까지의 값이 증가되는 것을 확인하지 않고 그 j의 값 자..
2022. 3. 17.
[프로그래머스] 자물쇠와 열쇠 자바
문제 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 문제 풀이 1. 행렬 좌표값 받아 둘 Point 클래스 선언 //좌표 클래스 class Point { int r, c; public Point(int r, int c) { this.r = r; this.c = c; } } 2. key의 돌기, lock의 홈 좌표를 받아둘 두 개의 ArrayList 생성 - lockList - keyList 3. lockList : r, c가 작은 값부터 정렬 4. keyList는 각도 회전이 가능하므로 총 4가지 방법으로 정렬을 함 - r↑ c↑ - r↑ c↓ - r↓ c..
2022. 3. 8.