Programming 썸네일형 리스트형 Ubuntu 에 Adoptium Temurin OpenJDK 17 설치하기 1. 시스템 업데이트sudo apt update && sudo apt upgrade 2. Adoptium Temurin OpenJDK17 설치 wget https://github.com/adoptium/temurin17-binaries/releases/download/ jdk-17.0.7%2B7/OpenJDK17U-jdk_x64_linux_hotspot_17.0.7_7.tar.gz 혹은 https://adoptium.net/en-GB/temurin/releases/ 에서 다운로드 후tar xzfv OpenJDK17U-jdk_x64_linux_hotspot_17.0.7_7.tar.gz 아카이브 추출 3. Ubuntu에 Adoptium Temurin OpenJDK 17을 설치합니다.추출된 폴.. 더보기 MAC OS H2 웹 콘솔 연결 시 오류 발생 먼저 이 글은 나 같은 맥북을 처음 사용하는 초보 유저를 위해 작성되었음을 밝힌다. 김영한님의 스프링 강의 듣는 기간 중 노트북을 윈도우 기반 노트북에서 맥북으로 갈아타게 되었는데 h2 database 설치 후 jdbc URL 에 jdbc:h2:~/jpashop 을 입력하니 아래와 같이 오류가 발생했다. database "/private/var/root/jpashop" not found, and ifexists=true ....... 오류의 원인과 해결법은 이렇다 원인 : 최근 버전의 경우 보안상의 이유로 웹콘솔에서 새 데이터베이스를 작성할 수 없음. (사용된 버전은 h2-1.4.999이다) 해결법 : h2 를 별도 설치 database를 직접 생성 h2를 별도 설치하기 위해 패키지 관리 툴(Homebr.. 더보기 DSL이란? DSL : Domain Specific Language 특정 영역을 타겟하고 있는 언어를 말한다. 예를들어, SQL DB의 데이터를 참조하기 위해 날리는 query는 말그대로 "DB에 데이터를 참조하기 위한 목적" 으로만 사용되며 SQL로 웹 애플리케이션 서버를 만드는 것은 절대 불가능 하다. 반면 JAVA, Kotlin은 SQL을 만들어 낼 수 있다. 사실상 SQL은 특정한 문법을 가진 문자열이기 때문이다. 참조 : https://lannstark.tistory.com/13 더보기 백준 10844번 쉬운 계단 수 dp 풀이 https://www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net arr[N][L] = arr[N - 1][L - 1] + arr[N - 1][L + 1]=> 길이가 N 일 때, 마지막 수가 L일 경우의 계단 수 주의할 점은 위의 점화식은 L이 (1 ~ 8) 일 때 성립한다. 왜냐하면 0은 +1을 한 1만 허용되고 9는 -1을 한 8만 적용되기 때문이다. 구체적인 점화식은 다음과 같다. L = 0 => dp[N][L] = dp[N - 1][L + 1] L = (1 ~ 8) => arr[N][L] = arr[N - 1][L - 1] + arr[N - 1][L + 1] L = 9.. 더보기 백준 1463 자바 dp 풀이 and bfs 풀이 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net Top-down은 가장 큰 문제를 방문 후 작은 문제를 호출하여 답을 찾는 방식이고, Bottom-up은 가장 작은 문제들 부터 답을 구해가며 전체 문제의 답을 찾는 방식이다. 흔히 top-down은 재귀 호출을, bottom-up은 반복문을 이용해 구현한다. Top-down 방식은 점화식을 이해하기 쉽다는 장점이 있고, Bottom-up 방식은 함수를 재귀 호출하지 않기 때문에 시간과 메모리 사용량을 줄일 수 있다는 장점이 있다. 우선 D[j]를 구한다고 해보자 (1 더보기 백준 1932 자바 DP 풀이 연두색 부분은 j == 0 일때 하늘색 부분은 i == j 일때 보라색 부분은 둘다 해당되지 않는 경우이다. 현재 i 행의 j번째 위치까지의 최대 합은 i행의 j번째로 입력 받은 값 triangle[i][j]와 이전 i - 1행의 j - 1번째 triangle[i - 1][j - 1] 혹은 j번째까지의 합 triangle[i - 1][j] 중 최대값을 더한 값이다. 단, 0번째 위치의 값은 j - 1번째가 존재하지 않고 삼각형의 끝 위치에 있는 값은 j번째 값이 존재하지 않으므로 예외 처리를 해준다. 코드로 나타내면 다음과 같다. import java.io.*; import java.util.StringTokenizer; public class t1932 { static int[][] triangle; .. 더보기 배열(Array)과 연결리스트(Linked List) 차이 -속도- (1번 포인트) 데이터에 대한 접근 속도 - 배열 승 배열은 index만 있다면 O(1)에 접근. 연결리스트는 최소 한 번은 리스트를 순회하여야 하므로 O(n)에 접근. (2번 포인트) 데이터 삽입 속도 - 경우에 따라 다름 (전체적으로 연결리스트 승리) 만약 배열에 공간이 많이 남아있고 맨 끝에 삽입한다면, 삽입 속도 역시 O(1)에 가능. 하지만 이런 경우만 발생하는 경우는 꽤 드물기 때문에 연결리스트의 필요성이 대두됨. 연결리스트는 어느 곳에 삽입하던지 O(n)의 시간에 접근함. (만약, 중간 삽입이 없다면 O(1)에 접근) 배열의 경우 데이터를 중간이나 맨 앞에 삽입할 경우 그 이후의 데이터를 한 칸씩 미뤄야하는 추가과정과 시간이 소요. 하지만 연결리스트는 필요없음. 또한 배열의 경우 데.. 더보기 백준 2579 자바 풀이 계단오르기는 Dynamic programming 초반에 가자 많이 연습하게 되는 문제입니다. DP를 왜 사용할까? DP는 기본적으로 중복으로 여러번 계산되는 것을 막기위해 고안된 방법입니다. 예를들어 파스칼의 삼각형에 경우 이항계수의 앞 계수를 구할때 사용하는 방법인데, 중복되느 경우가 있습니다 이 중복 계산이 시간을 반복적으로 잡아먹게되어 시간 초과 나는 경우가 발생합니다. DP는 중복값이 나올때마다 이미 계산한 값이라면 계산하지 않고 값이 나오는 방식을 이용합니다. 이때, '중복 값을 미리 계산처리 하는 것'을 중점으로 두고 문제를 풀어야합니다. 계단 오르는 데는 다음과 같은 규칙이 있다. 계단은 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다. 즉, 한 계단을 밟으면서 이어서 다음 계단이나, 다음.. 더보기 이전 1 2 3 4 다음