JAVA : System.out & StringBuilder
·
JAVA
system.out 대신 StringBuilder를 이용하여 알고리즘 시간 초과 문제를 개선할 수 있다. System.out.println() 표준 입출력 기능 내부적으로 동기화 처리가 되어있다. 즉, 작업 중인 스레드가 있을 때, 다른 스레드는 대기 시간이 발생한다. 이로 인해 오버 헤드가 발생 할 수 있다. -> 오버헤드가 쌓여 성능 저하 발생 public class Main { public static void main(String[] args){ for(int i =1;i
JAVA : StringBuilder & Scanner
·
JAVA
알고리즘 문제를 풀 때, 시간 초과로 인한 문제가 발생할 수 있다. 이때, Scanner 대신 StringBuilder를 사용하면 소요 시간을 단축할 수 있다. Scanner java.util.Scanner 클래스 읽은 데이터 파싱 가능 IOexception 던짐X 버퍼 사이즈 import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int N = sc.nextInt(); System.out.println(N); } } StringBuilder java.io.BufferedReader 클래스 파싱 불가능 -> 모두 텍스트로 읽음 (string으..
[백준] 11729 : 하노이 탑 이동 순서 <JAVA>
·
알고리즘
문제: N개의 원판 개수를 입력 받았을 때, 이동 과정 출력 하노이 탑의 원리를 알기! 하노이 탑 이동 횟수 = 2^N - 1 한 번 이동할 때, 제일 위에 있는 원판 하나만 이동 가능 크기가 큰 원판은 작은 원판 위에 쌓을 수 없음 이동 방법(위치1에 원판 n개가 있다고 가정) n-1개의 원판을 위치 2로 옮기기 마지막 원판을 위치 3으로 옮김 n-1개의 원판을 다시 위치 3으로 옮김 import java.util.Scanner; public class Main { public static StringBuilder sb = new StringBuilder(); public static void main(String[] args) throws IOException { BufferedReader br = ..
[백준] 2447 : 별 찍기 <JAVA>
·
알고리즘
문제: 3의 배수인 N을 입력받을 경우, N/3 * N/3 크기의 사각형을 N/3 의 결과값으로 둘러싼 사각형 출력하기 예시 1. 3의 배수 N을 입력받아 2차원 배열의 크기 설정 2. 2차원 배열을 공백으로 초기화 3. 재귀함수 star로 배열에 * 채우기 4. 2차원 배열 출력 - 파라미터 : x,y 어레이 시작점, n 어레이 사이즈 (가로, 세로 길이) 1. N==1 이면 arr[x][y]에 * 찍기 2. 아닐 경우 해당 크기의 배열을 9등분하여 시작점(제일 왼쪽 위 위치) 기준으로 N/3으로 재귀함수 콜 3. 만약 9등분 배열에서 중앙 배열일 경우 재귀함수 callX import java.util.*; public class Main { static char arr[][]; //n크기만큼 2차원 ..
[백준] JAVA : 재귀함수1 < 팩토리얼 & 피보나치>
·
알고리즘
1. 팩토리얼을 재귀 함수로 구현 (No. 10872) - 숫자 입력 (변수명 num) - 0! 은 1 이므로 num = 1 이면 return 1 - 1! 은 1 이므로 num = 1 이면 return 1 - num 값이 2이상이면, 1부터 num값 까지 곱하기 -> 재귀함수로 그전 값 call public static int fact(int num){ if(num == 0) return 1; else if(num == 1) return 1; else{ return num * fact(num-1); } } 2. 피보나치 수 함수로 구현 (No. 10870) - 숫자 입력 (변수명 num) - num = 0이면 return 0 - num = 1이면 return 1 - num 값이 2이상이면, fibo(nu..
Spring : mybatis 연동
·
WEB/Spring
정의: 객체지향 언어인 자바의 관계형 DB 프로그래밍을 쉽게 할수 있도록 도와주는 개발 프레임워크 특징: 간단한 자바코드로 db 연동 처리 자바코드에서 분리된 sql 명령어 (쿼리) > xml파일에서 관리 (mapper라고 칭함) 1. pom.xml에 library 추가 [ https://mvnrepository.com/ 여기서 검색 가능 ] spring-jdbc (스프링의 JDBC, Spring version과 동일 > log4jdbc 사용) mysql-connector mybatis mybatis-spring (스프링에서 Mybatis 연동을 위한 모듈) spring-test 2. mybatis-config.xml 설정 파일 생성 [위치 : Java Resources/src/main/resources..
Spring : 한글 깨짐
·
WEB/2020_webCamp
UTF-8로 인코딩을 해야하므로 web.xml에 아래의 코드를 추가한다. encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 encodingFilter /*
Heroku 이용하기
·
WEB/2020_webCamp
헤로쿠란? 무료로 웹 호스팅을 제공하는 서비스 무료 버전의 경우, 최대 5개의 어플리케이션을 올릴 수 있고 30분 동안 이용을 하지 않을 시, sleep상태로 빠져 다시 웹이 깨어나는 데 시간이 걸린다. 발표용, 포토폴리오용으로 GOOD! [설치 방법] Heroku 사이트 가입 : https://dashboard.heroku.com/ Heroku dashboard.heroku.com Heroku Command Line Interface (CLI) 설치 : https://devcenter.heroku.com/articles/heroku-cli The Heroku CLI | Heroku Dev Center The Heroku CLI Last updated 15 June 2020 The Heroku Comma..