1. Java 구현 import java.io.*; import java.util.Scanner; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); String a = br.readLine(); char op = br.readLine().charAt(0); String b = br.readLine(); if(a.length() < b.length()) { String temp = a; a = b; b = temp..
1. Java 구현 package Q1371; import java.io.*; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); StringBuilder sb = new StringBuilder(); char[] arr = new char[26]; int max = 0; while(sc.hasNextLine()) { char[] input = sc.nextLine().toCharArray(); for (int i = 0; i < input.length; i++) if (input[i] != ' ') max = Math.max(max, ..
1. Java 구현 (1) 시간초과 : 시간복잡도 O(n^2) → 실패 import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringBuilder sb = new StringBuilder(); int t = Integer.parseInt(br.readLine()); for(int i = 0; i < t; i++) { ..
1. Entity Manager Factory & Entity Manager 애플리케이션이 실행될 때, xml 또는 properties 파일에 있는 정보를 바탕으로 Entity Manager Factory 를 생성한다. Entity Manager Factory를 이용해서Entity Manager 생성이 가능하다. Entity Manager Factory 는 비용이 많이 소요되기 때문에 하나의 애플리케이션에서 공유해서 사용이 가능하고,멀티스레드에서도 동기화 처리를 통해 안전하게 사용이 가능하다. 하지만 Entity Manager는 여러 스레드에서 공유해서 사용되서는 안되기 때문에스레드마다 Entity Manager를 생성할 필요가 있다. 아래는 SPRING BOOT에서 JPA Database 설정을 위한 ..
Priority Queue (우선순위 큐) 우선순위 큐는 각 각의 원소들이 우선순위를 갖고 있는 큐이다. 높은 우선순위를 가진 원소는 낮은 우선순위를 가진 원소보다 먼저 처리된다. 두 원소의 우선순위가 동일하다면, 먼저 삽입된 원소부터 처리된다. 그리고 우선순위는 아래와 같은 원칙을 가지고 있다. 1. 모든 정점은 자신의 자식 정점보다 우선순위가 크다. 루트 정점이 가장 큰 우선순위를 가지고 있다. 2. 완전 이진트리의 형태이다. 3. 우선 순위가 가장 큰 값이 우선적으로 pop() 된다. (루트정점) Priority Queue (우선순위 큐) 동작 순서 (1) 삽입 1. 우선순위큐는 완전이진 트리의 형식을 이룬다. 2. '25' 라는 정점이 삽입되면, 완전 이진트리 형식에 맞추어 삽입된다. 3. 정점은..
1. HTTP (HyperText Transfer Protocol) 동작 원리 웹의 동작원리는 아래 이미지와 같이 동작한다. 아래 이미지가 자세하게 나와있기 때문에 별다른 설명이 필요하지 않을거라 생각이 든다.혹시나 좀더 자세한 설명이 필요하다면 해당 이미지의 출처인 http://tcpschool.com/webbasic/works 에서 확인해보면 좋을거 같다. 동작원리를 보다보면, DNS 와 TCP 를 보게된다. 이 부분을 더 자세히 알아보자! 2. DNS (Domain Name System) 정의 및 동작원리 DNS (Domain Name System)는 특정 컴퓨터 또는 네트워크로 연결된 임의의 장치의 주소를 찾기 위해, 사람이 이해하기 쉬운 도메인 이름을 숫자로 된 IP 주소로 변환해주는 시스템이다..
1. Ajax (Asynchronous Javascript And Xml) 정의 일반적으로 HTTP 프로토콜은 클라이언트가 Request를 보내면 서버에서 데이터를 처리한후 Response를 보내고 연결을 끊는 방식으로 동작한다. 결국은 response의 body에 이동하는 화면의 HTML 정보가 담겨져 있기 때문에 전체 화면을 로딩하게 된다.회원가입 아이디 중복체크를 할 때, Ajax를 사용하지 않고 구현을 한다고 생각해보자. 그럼 아래와 같이 동작할 것이다. 1. 사용자가 웹 브라우저에 아이디를 포함한 정보 입력하고 정보를 Request의 body에 넣고 서버에 요청을 한다. 2. 서버가 DB에 접근해서 해당 아이디가 있는지 확인한다. 3. Response 객체의 body에 화면의 HTML 정보와 아..
프로그래머스 2단계 타겟넘버 문제 url : https://programmers.co.kr/learn/courses/30/lessons/43165 문제설명n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3+1-1+1+1+1 = 3+1+1-1+1+1 = 3+1+1+1-1+1 = 3+1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항주어지는 숫자의 개..
1. Java 구현 package Q15894; import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { System.out.println(new BigInteger(new Scanner(System.in).nextLine()).multiply(new BigInteger("4")) + "\n"); } } 2. 코드설명 이 문제는 규칙성 발견과 큰 출력값을 표현할 수 있는 것이 가장 중요한 요소이다. 우선 규칙성을 말하자면 "입력값 * 4 == 결과값" 이다. 1 -> 4 이고, 2 -> 8 이고, 3 -> 12 이고, .... 이다. 왜인지는 직접 그림을 ..
스프링을 이용해서 의존성을 주입하는 세 가지의 방식을 비교해보려고 한다. Java에서 간단하게 구현할 수 있는 생성자, setter 메소드를 이용하는 의존성 주입을 제외한, @Autowired, @Resource, 태그를 비교해보겠다! 먼저 결론부터 말하자면, @Autowired 를 개인적으로 더 선호한다! 1. @Autowired vs @Resource @Autowired @Resource 사용 출처 스프링 프레임워크 표준 자바 빈 검색 방식 By Type --> By Name by Name -->By Type By Name 강제방법 @Autowired @Qualifier("Dog") @Resource(name="Dog") @AutoWired는 스프링 프레임워크에서만 사용가능하지만, @Resource는..