이전 글에 이어서 JDBC 를 활용한 DML 문의 실전활용을 정리했다. 오라클에서 정보를 JDBC 로 가져올 때 우리는 프로그램 구성을 어떻게 해야 할까? 먼저 우리는 MCV 패턴 중 DAO, DTO 개념을 먼저 잡고 가는 것이 좋을 것 같다. 그림에서처럼 Main 실행 클래스를 시작으로 실행 메뉴들을 관리하는 Controller 그리고 SQL문을 실행하고, 세부 메서드를 다루는 DAO 로 나눌 수 있다. 이 때 객체의 속성 값을 전달하는 DTO 가 존재하게 된다. 이는 하나의 소프트웨어 디자인 형식이다. 그렇다면 DAO, DTO 는 무엇일까? DAO Data Access Object / DTO Data Transfer Object (= VO Value Object) DAO 는 DB 에서 정보를 가져오는..
백준 2442 www.acmicpc.net/problem/2442 풀이 트리모양으로 별을 찍는 문제이다. 왼쪽 공간을 생각해보면 백준 별찍기-3 의 문제와 같이 줄어드는 공백으로 된 삼각형이 있는 것을 알 수 있다. 트리가 출력될 때 공백과 별을 함께 출력한다고 생각해보자. 결과적으로 공백은 한 개씩 줄어들고, 별은 n*2-1 만큼 출력된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 import java.util.*; public class math_2442 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int input = sc.next..
백준 2440번 www.acmicpc.net/problem/2440 풀이 중첩 for 문을 이용해서 풀이한다. 첫 for문은 줄 n 개 (input 값) 를 의미하고 두 번째 for 문은 * 의 개수를 하나씩 차감하는 것을 적용해준다. j 는 i 의 값에 따라 달라지므로 int j=input-i; 로 초기화해준다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 import java.util.*; public class math_2440 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int input = sc.nextInt(); sc.nextLine(); ..
백준 3009 www.acmicpc.net/problem/3009 풀이 이 방법이 좋다고는 볼 수 없지만 단순하게 말해서 주어진 문제의 x 좌표 값이 일치하는 두 개가 있고 나머지 하나가 정답의 x 좌표가 될 것이다. 직사각형이니까 y 좌표역시 동일하게 구해주었다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 import java.util.Scanner; public class Math_3009 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int x1=0,x2=0,x3=0,y1=0,y2=..
백준 1712 www.acmicpc.net/problem/1712 풀이 손익분기점은 수익이 비용을 넘어서는 그 지점을 알아내는 문제이다. 이 문제의 주의점은 1. 시간초과이다. 0.35초로 시간이 한정되어 있기 때문에 반복된 for 문을 이용한 풀이는 시간을 벗어난다. 2. 손익분기점이 존재하지 않으면 -1 을 출력한다는 점이다. 입력 순서대로 a 는 고정비용, b 는 가변비용, c 는 수익이다. 수익이 비용을 넘어설 수 없는 즉, 손익분기점이 존재하지 않게 되는 경우는 수익이 증가하는 가변비용을 넘어설 수 없을 때이다. 그 외의 손익분기점이 존재하는 경우는 a+b*n < c*n 의 n 값인데, 정리하면 a+(b-c)*n < 0 n < -a/(b-c) 즉, 실제 손익분기점 n의 값은 -a/(b-c)+1 ..
백준 10872 www.acmicpc.net/problem/10872 풀이 팩토리얼 개념을 알아야 문제를 풀 수 있다. 팩토리얼은 n! 이렇게 표현되며, 1 부터 n까지의 수를 곱한 결과값을 갖는다. 즉 3! = 1 * 2 * 3 이다. 재귀 메서드를 만들어서 다음과 같이 팩토리얼 값을 구할 수 있다. 단, 1 보다 작거나 같은 값은 1이 나오도록 제외해준다. (예제 입력 2의 0의 팩토리얼은 1이다.) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 import java.util.Scanner; public class math_10872 { public static void main(String[] args) { Scanner ..
백준 10870 www.acmicpc.net/problem/10870 풀이 재귀 단계에 있는 피보나치 수열 문제이다. 재귀를 이용해서 풀이했는데 먼저 메서드를 만든다. Fibonacci 메서드는 0과 1일 때의 경우의 수를 먼저 제외하고, 앞의 두 수를 더하는 수열이다. Fibonacci 메서드를 살펴보면, 1. 초기값이나 제외할 값(즉, 규칙이 아니라 주어지는 값)을 먼저 if 문으로 제외한다. 2. 그 다음 사항은 Fibonacci 의 실제 규칙을 적어준다. 앞의 값의 합을 Fibonacci 메서드를 이용하여 작성한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 import java.util.Scanner; public ..
백준 2798 www.acmicpc.net/problem/2798 풀이 모든 경우의 수를 고려하는 브루트 포스 문제이다. 주어진 카드에서 3장의 수를 더해서 그 값이 입력받은 value 값을 넘지 않는 최대 합을 구하는 문제이다. 세 가지 정수를 계산하기 위해 중첩 for 문을 이용해서 풀이했다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int cardnum = sc.nextInt()..
- 오늘의코딩
- 정보처리기사
- SQLD
- spring
- 배포
- 정보처리기사 필기
- 독서후기
- gradle
- 정보처리기사 실기
- jdbc
- putty
- AWS
- ubuntu
- intellij
- 웹페이지만들기
- 개발도서
- 기술블로그
- EC2
- filezila
- 북클럽
- IT 5분 잡학사전
- LifecycleException
- JIRA
- git연동
- java
- 호스팅영역
- 노개북
- 실용주의프로그래머
- 노마드코더
- gradle build
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |