{33, 36, -73, 15, 43, -17, 36, -28, -1, 21} 1단계 : 배열 초기화 //초기화 public static void calculate_max(int[] s, int n){ for(int i=1; i < n; i++){ System.out.println("c[" + i + "] = max( s["+i+"], (s[" + i + "] + c[" + (i-1) + "] ) )"); c[i] = max( s[i] , (s[i] + c[i-1]) ); } System.out.println(); System.out.printf("a[] : "); view1(a); System.out.printf("c[] : "); view1(c); } c[1] = max( s[1], c[0] ) c[..
투자액 기업0 기업1 기업2 1 2 3 1 2 4 5 3 3 6 6 7 4 9 8 9 참고로 해당 이익표의 내용들을 아래와 같이 저장하였다. A[0,2] = 4 는 0기업에 2만원 투자했을 때의 이익이 4라는 것이다. static int[][] r = { {0,2,4,6,9}, {0,3,5,6,8}, {0,1,3,7,9} }; 쉽게 생각해서 max_return이라는 새로운 배열을 선언한고 해당 배열에는 최대값을 넣는다. 즉, max_return[1][2] = 3 이라고하면 0~1번 기업까지 2만원을 투자했을 때 얻을수있는 최대이익이 3 이라는 것이다. max_return[1][2] 값을 구하기 위해서는 아래와 같은 과정이 필요하다. 1) max_return[0][0] + r[1][2] 2) max_ret..
@Query에는 JPQL(객체 쿼리)을 이용한다. JPQL은 쉽게 말해서 JPA에서 사용하는 Query Language이다. package com.kyhslam.persistence; import java.util.Collection; import java.util.List; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; import com.kyhslam.domain.Board; pub..
Page는 단순 데이터만의 추출하는 용도가 아니라, 웹에서 필요한 데이터들을 추가적으로 처리해 준다. package com.kyhslam.persistence; import java.util.Collection; import java.util.List; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.repository.CrudRepository; import com.kyhslam.domain.Board; public interface BoardRepository extends CrudRepository { public Page ..
package com.kyhslam.persistence; import java.util.Collection; import java.util.List; import org.springframework.data.domain.Pageable; import org.springframework.data.repository.CrudRepository; import com.kyhslam.domain.Board; public interface BoardRepository extends CrudRepository { // bno > ? ORDER BY bno DESC limit ?,? public List findByBnoGreaterThanOrderByBnoDesc(Long bno, Pageable paging); ..
1. 테이블 컬럼 추가하기 (ALTER TABLE ADD) ALTER TABLE 테이블명 ADD(컬럼명 데이타타입(사이즈)); 2. 테이블 컬럼 수정 (ALTER TABLE MODIFY) ALTER TABLE 테이블명 MODIFY(컬럼명 테이타타입(사이즈) ); 3. 테이블 컬럼 삭제 (ALTER TABLE DROP) ALTER TABLE 테이블명 DROP COLUMN 컬럼명 4. 테이블 컬럼 이름 변경 (ALTER TABLE RENAME) ALTER TABLE 테이블명 RENAME COLUMN 원래컬럼명 TO 바꿀컬럼명
길찾기 알고리즘 지금까지 동적프로그래밍이란 재귀 + 메모제이션 이라고 알고 있었다. 재귀의 단점을 발전시킨 것이 메모제이션이고 이는 Top-Down 방식으로 진행된다. 동적프로그래밍은 초기화 된 처음 값을 쌓아가는 방식으로 Bottom-Up 방식으로 진행된다. 둘다 아이디어는 같다. 부분 문제들의 값을 다른 메모리 배열에 저장하여 반복계산하지 않는다. 주로 선호되는 방식은 메모제이션이다. 점화식 # 점화식 if ( map[i][j] == 0 ) MEMO[i][j] = 0; if ( map[i][j] == 1 ){ i==0, j==0 이면 MEMO[0][0] = 1; i > 0, j==0 이면 MEMO[i][j] = MEMO[i-1][j]; i==0, j > 0 이면 MEMO[i][j] = MEMO[i][..
Spring 프로젝트를 진행하면서 컴포넌트 내부에서 URL을 요청해야하는 경우가 생긴다. Spring에서는 Http 요청을 간단하게 이용할 수 있도록 Blocking I/O 기반의 RestTemplate, Non-Blocking I/O 기반의 WebClient 모듈을 제공한다. | RestTemplate 예제 SampleController.java package com.kyhslam; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class SampleController { @GetMapping..
쿼리 메소드는 스프링데이터 JPA의 핵심적인 기능 중 하나로 메소드 이름으로 쿼리를 생성할 수 있다는 장점이 있다. 메소드 이름으로 쿼리를 생성하기 위해 인터페이스에서 사용할 사용자 쿼리 메소드를 정의해 준다. 방식 : Collection findBy + 속성이름(속성타입) 기존의 Board 를 활용한 데이터 조회 예제 fidBy를 이용한 컬럼 조회 like 구문 and or 처리 부등호 order by package com.kyhslam.persistence; import java.util.Collection; import java.util.List; import org.springframework.data.repository.CrudRepository; import com.kyhslam.domain...
데이터 수정 테스트 코드 package com.kyhslam; import java.util.Optional; import java.util.stream.Stream; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import com.kyhslam.domain.Board; import com.kyhslam.persistence..
스프링 Data JPA는 기본적으로 Hibernate라는 JPA 구현체를 사용한다. Hibernate는 내부적으로 지정되는 DB에 맞게 SQL문을 생성하는 Dialect(방언)이 존재한다 Dialect는 Hibernate가 다양한 데이터베이스를 처리하기 위해 각 데이터베이스마다 다른 SQL문법을 처리하기 위해 존재하는 것이다. JPA를 통해 호출하면 설정된 데이터베이스에 맞게 SQL문이 생성되는데 이 역할을 하는 존재를 Dialect라고 한다. 내부적으로는 OracleDialect, MySQLDialect 같은 클래스들이 다수 존재한다. 참고로 application.properties에 데이터베이스의 종류를 지정하면 기본적으로 해당 데이터베이스에 맞는 Dialect가 지정되지만 특정 버전을 명시해 줄 수..
게시판 엔티티 생성 package com.kyhslam.domain; import java.sql.Timestamp; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; import org.hibernate.annotations.CreationTimestamp; import org.hibernate.annotations.UpdateTimestamp; @Entity @Table(name="tbl_boards") public class Board {..