본문 바로가기
728x90

Baekjoon/[Code.plus] 알고리즘 기초 1/269

[BOJ/백준] 1699 제곱수의 합 ● [문제번호 1699] 제곱수의 합 https://www.acmicpc.net/problem/1699 1699번: 제곱수의 합 어떤 자연수 N은 그보다 작거나 같은 제곱수들의 합으로 나타낼 수 있다. 예를 들어 11=32+12+12(3개 항)이다. 이런 표현방법은 여러 가지가 될 수 있는데, 11의 경우 11=22+22+12+12+12(5개 항)도 가능하다 www.acmicpc.net ● 알아야 할 것 : 다이나믹 프로그래밍 ● 풀이 과정 : 처음에는 주어진 수(N)에서 (int)sqrt(N)의 제곱을 빼는 횟수를 최소 항의 수라고 생각했다. 12로 예를 들면 12 - (3^2) 3 - (1^2) 2 - (1^2) 1 - (1^2) 로 총 4개의 항이라고 생각했다. 12 = 3^2 + 1^2 + 1^2.. 2021. 7. 30.
[BOJ/백준] 1912 연속합 ● [문제번호 1912] 연속합 https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net ● 알아야 할 것 : 다이나믹 프로그래밍 : vector 자료구조와 메소드 ● 풀이 과정 : 연속된 부호의 부분 배열을 묶어서 이리저리 해보려했으나 점점 복잡해져서 구글링을 했다. : DP의 풀이과정 (Bottom - Up) 1. 테이블 정의하기 → index까지 범위에서 연속된 몇 개의 수를 선택해서 구할 수 있는 가장 큰 합 2. 점화식 찾기 → (index 수) < (i.. 2021. 7. 30.
[BOJ/백준] 14002 가장 긴 증가하는 부분 수열 4 ● [문제번호 14002] 가장 긴 증가하는 부분 수열 4 https://www.acmicpc.net/problem/14002 14002번: 가장 긴 증가하는 부분 수열 4 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net ● 알아야 할 것 : 다이나믹 프로그래밍 : vector 자료구조와 메소드 : Longest Increasing Subsequence ● 풀이 과정 : 기존 [11053 가장 긴 증가하는 부분 수열]의 문제에서 해당 수열을 출력하는 것이다. 그래서 부분 수열.. 2021. 7. 30.
[BOJ/백준] 11053 가장 긴 증가하는 부분 수열 ● [문제번호 11053] 가장 긴 증가하는 부분 수열 https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net ● 알아야 할 것 : 다이나믹 프로그래밍 : vector 자료구조와 메소드 : Longest Increasing Subsequence ● 풀이 과정 : 시간복잡도가 O( N^2 ) 인데 더 줄일 수 없는 방법을 고민하다가 일단 채점했는데 통과되었다. : DP의 풀이.. 2021. 7. 30.
728x90