[ 누적합 ] 백준 - 2차원 배열의 합
·
알고리즘
https://www.acmicpc.net/problem/2167/ 풀이과정누적합을 사용해보자! 물론 for문 써도 되는데 문제 조건이 헤비함배열의 크기 N, M(1 ≤ N, M ≤ 300)합을 구할 부분의 개수 K(1 ≤ K ≤ 10,000) 최악의 경우 300x300 크기의 배열에 K가 10,000개 이면연산을 300*300*10,000번 해야됨. 에바잖슴 그래서 누적합을 써야된다! 누적합 배열을 처음에 생성할때 시간복잡도는 O( N * M )합을 구할때에는 O( K )이다. 그래서 누적합을 사용하면 최종 시간복잡도는 O( N * M + K )가 된다  코드import java.io.*;import java.util.*;public class Main { public static void mai..
[ CS ] 인증 & 보안 - SSO
·
cs 지식
보호되어 있는 글입니다.
[ Java ] 프로그래머스 - 최솟값 만들기
·
알고리즘
https://school.programmers.co.kr/learn/courses/30/lessons/12941 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이과정내 생각에는 일단 최솟값을 만들기 위해서는 극단적 예시로 배열이A : [ 1, 2, 3 ]B : [ 1, 2, 3 ]이렇게 주어졌을때 오름차순 * 오름차순보다는  (결과 1*1 + 2*2 + 3*3 = 14)A : [ 1, 2, 3 ]B : [ 3, 2, 1 ]이렇게 오름차순*내림차순을 곱했을때 최솟값일거라는 생각이었고, (결과 1*3 + 2*2 + 3*1 = 10)그 생각이 맞았다. 1. 코드import java.util.*;class..
hanjuCoding
한주코딩