목록Java (116)
Hayden's Archive
관련 포스팅 : 파이썬에서 파이썬에서 openpyxl로 엑셀 읽기 & 쓰기 [Python] 파이썬에서 openpyxl로 엑셀 읽기 & 쓰기 참고 : 파이썬 엑셀 쓰기 라이브러리 비교 참고 : 큰 엑셀 파일 내용 읽기 파이썬으로 엑셀 파일을 쓸 수 있는 라이브러리는 많다. 그 중에서도 가장 많이 쓰이는 openpyxl 라이브러리를 써볼까 한�� hayden-archive.tistory.com xls, xlsx 와 같은 엑셀 파일을 파이썬으로 입출력하는 것은 실습했는데 스프링 프로젝트에서 쓰려면 자바로도 입출력하는 것이 필요하다. 그래서 Apache POI를 사용해서 자바로도 실습해보겠다. poi.apache.org/index.html 위 공식 홈페이지에서 다운 받을 수 있다. 하지만 난 스프링 프로젝트에서..
알고리즘 문제 출처 : 백준 - 15988번 : 1, 2, 3 더하기 3 https://www.acmicpc.net/problem/15988 15988번: 1, 2, 3 더하기 3 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net 내가 작성한 코드 import java.util.Scanner; public class Main { public static void main(String args[]) { Scanner sc = new Scanner(System.in); int t = sc.nextInt(); long[] check = new long[1000001]; check[1] = 1; check[2..
알고리즘 문제 출처 : 백준 - 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 내가 작성한 코드 다이나믹 프로그래밍 말고 다른 방법으로 풀어볼 수 있을 것 같아서 도전했다가 실패하고 결국 다이나믹 프로그래밍으로 풀었다. 먼저 check에 1씩 할당해야 한다.(어느 수이든 1가지 방법 이상이기 때문) 앞에 있는 numArr..
VO 필드명 DB 컬럼명 자바에서는 주로 Camel Case를 쓰는 반면, DB에서는(+파이썬에서도) Snake Case를 쓴다. 그러다 보니 VO 필드명과 DB 테이블 컬럼명이 불일치하는 경우가 생길 수 있다. 위에서는 userId, userName과 user_id, user_name이 서로 불일치한다. 단위 테스트 코드 package ibatis.services.user.test; import ibatis.services.domain.User; import java.io.Reader; import java.util.List; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apac..
* Summary SqlSession * query statement * INSERT INTO ------------- insert() * DELETE FROM ------------- delete() * UPDATE table ------------ update() * SELECT all -------------- List selectList() * SELECT one -------------- Object selectOne() DB 테이블 - mysawon VO - MySawon.java package com.encore.mybatis.vo; /* * Framework에서는 반드시 기본 생성자를 넣어야 한다.(생성자 아무것도 안 넣었을 경우에는 알아서 만들어짐) * MyBatis에서는 값의 주입을 S..
* Summary 하나의 bean은 하나의 객체와 같음. bean 태그에는 필수속성 2개가 있음. id와 class class에 FQCN을 쓰고, id에는 인스턴스명을 씀. 주문서를 보고, 주문서대로 객체를 만들고 객체를 보관하고 있는 클래스가 DI Container인 것. * 폴더 구조 Dice.java (인터페이스) package spring.service.dice; public interface Dice { void selectedNumber(); int getValue(); } DiceAImpl.java (DiceBImpl.java, DiceCImpl.java도 거의 동일) package spring.service.dice.impl; import java.util.Random; import spr..
알고리즘 문제 출처) 백준 1463번 : 1로 만들기 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 내가 작성한 코드 Bottom-Up 방식(반복문으로 구현) import java.util.Scanner; public class Main { public static void main(String args[]) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] record = new int[n+1]; for(int i=2; irecord[i/2]+1) { record[i] = record[..
백준 11005번 : 진법 변환 2 알고리즘 문제 출처 : https://www.acmicpc.net/problem/11005 11005번: 진법 변환 2 10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 �� www.acmicpc.net 내가 작성한 코드 10진법 수 N을 B진법으로 바꾸려면 N이 0이 될 때까지 나머지를 계속해서 구하면 된다. import java.util.Scanner; public class Main { public static StringBuilder change(int n, int b) { StringBuilder sb = new Str..
알고리즘 문제 출처 : https://www.acmicpc.net/problem/17087 17087번: 숨바꼭질 6 수빈이는 동생 N명과 숨바꼭질을 하고 있다. 수빈이는 현재 점 S에 있고, 동생은 A1, A2, ..., AN에 있다. 수빈이는 걸어서 이동을 할 수 있다. 수빈이의 위치가 X일때 걷는다면 1초 후에 X+D나 X-D로 이� www.acmicpc.net 내가 작성한 코드 수빈이와 동생들과의 거리의 절대값들을 각각 구한 뒤 그 값들의 최대공약수를 구해주면 된다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static lon..
알고리즘 문제 출처 : https://www.acmicpc.net/problem/10872 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net 내가 작성한 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); long factorial = 1; int n = sc.nextInt(); for(int i=2; i