문제https://www.acmicpc.net/problem/11650 접근 방법x좌표랑 y좌표를 순서대로 정렬한다음 출력하는 문제이다.따라서 Comparable, Comparator 두 가지 방법이 있지만 일반적으로 좌표를 정렬할때 기준이 없기 때문에 Comparator로 구현하는것이 낫겠다고 판단하였다.코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;import java.util.Comparator;import java.util.StringTokenizer;public class Main { private static StringBuilder sb; private static Bu..
문제https://www.acmicpc.net/problem/11050 접근 방법이항계수를 구하는 문제이다.N ! / (N-K)! * K!를 구하는 문제이다. N 이 5 K 가 2일때 5 ! /( 5-2) ! * 2! 이므로 5 *4 / 2 * 1 이 된다.따라서 다음과 같은 식으로 표현이 가능하다.코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { private static StringBuilder sb; private static BufferedReader br; private static StringTokenizer st; ..
문제https://www.acmicpc.net/problem/10989 접근 방법N개의 수가 주어졌을 때, 오름차순하는 가장 쉬운 방법은 Arrays.sort()를 이용하는 방법이다. 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;import java.util.StringTokenizer;public class Main { private static StringBuilder sb; private static BufferedReader br; private static StringTokenizer st; private static int N; ..
들어가기 앞서, MyBatis와 JPA를 사용하여 프로젝트를 만든 경험이 있었다. 확실히 JPA를 사용하면 코드 작성도 편해지고 가독성도 좋았다. 그렇다면 조금 더 자세하게 JPA가 무엇인지, Hibernate가 무엇인지, Spring Data JPA가 무엇인지, ORM이 무엇인지, JPA와 MyBatis의 차이는 무엇인지 자세하게 알아보자.📌JPA란?JPA(Java Persistence API)는 자바 진영의 ORM(Object Relational Mapping:객체 관계 매핑)기술 표준으로 사용되는 인터페이스 모음을 말한다. 여기서 중요하게 생각할 점은 JPA는 특정 기능을 하는 라이브러리가 아닌, ORM을 사용하기 위한 인터페이스의 모음이라는 것이다. 그렇다는 것은 JPA는 단순히 명세이기 때문..
📌Dispatcher Servlet(디스패처 서블릿)Dipatcher Servlet이란 서블릿 컨테이너의 가장 앞단에서 HTTP 프로토콜로 들어오는 모든 요청을 먼저 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러입니다. 조금 더 자세히 설명하면 클라이언트로부터 어떠한 요청이 오면 Tomcat(톰캣)과 같은 서블릿 컨테이너가 요청을 받게됩니다. 그리고 이 모든 요청은 프론트 컨트롤러인 디스패처 서블릿이 가장 먼저 받게 됩니다. 그러면 디스패처 서블릿은 공통적인 작업을 먼저 처리한 후에 해당 요청을 처리하는 컨트롤러를 찾아 작업을 위임합니다. 디스패처 서블릿 등장하기 이전 디스패처 서블릿 등장하기 이후 디스패처 서블릿 역할HTTP 프로토콜로 들어오는 모든 요청을 먼저 받고, 요청을 적합한 컨트롤러에..
문제https://www.acmicpc.net/problem/10816 접근 방법N개의 카드를 받고, M개의 카드랑 겹치는카드가 몇장있는지 구하는 문제입니다.범위는 50만 이므로 완전탐색(O^2)이 불가능 하다고 생각했습니다.따라서 이분탐색을 생각하였고, 겹치는 범위중 왼쪽 인덱스와 오른쪽 인덱스를 구해서 차이를 구해주면 됩니다.코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;import java.util.StringTokenizer;public class Main { private static BufferedReader br; private static StringBuilder sb..
문제https://www.acmicpc.net/problem/10773 접근 방법재현이는 재민이가 잘못된 수를 외칠때마다 0을 외쳐서 가장 최근에 쓴 수를 지우는 문제입니다.따라서 스택에 넣고 0을 외칠때마다 스택에서 pop하여 없애줍니다.또한 스택에 쌓여있는 것들을 누적하여 sum값을 구하면 됩니다. 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Stack;import java.util.StringTokenizer;public class Main { private static StringBuilder sb; private static BufferedReader br; private sta..
문제https://www.acmicpc.net/problem/10814 접근 방법회원을 나이순으로 정렬하면 되는 문제입니다.Compable과 Comparator중 고민을 했었지만 나이순으로 정렬하는 것은 Person을 정렬할때 웬만하면 나이순으로 정렬한다는 것을 생각하여 Comparable을 구현했습니다.하지만 정렬기준이 특별하거나, 정렬을 여러 배열에서 해야 한다면 Comparator로 구현할 것입니다.코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.Collections;import java.util.StringTokenizer;public class Mai..
문제https://www.acmicpc.net/problem/9012 접근 방법https://eungae-d.tistory.com/118 이것과 유사한 문제입니다.스택을 사용하여 '(' 이것이 나오면 스택에 넣어주고, ')' 이것이 나왔을때 스택이 비어있거나 최상단이 '(' 이것이 아닐경우 NO를 리턴해줍니다.만약 통과한다면 스택에 값이 있고, 스택최상단이 '(' 이것이므로 짝을 맞추어 스택에서 pop하여 제거해줍니다.최종적으로 스택에 남아있는게 하나도 없으면 YES, 남아있는게 있으면 ex. ( ( ( 이런식으로 NO를 리턴해줍니다.코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Stack;import..
문제https://www.acmicpc.net/problem/7568 접근 방법나를 기준으로 몸무게와 키 둘 다 큰 사람은 나보다 덩치가 큰 사람입니다.따라서 나를 1순위라고 가정했을때 나보다 덩치가 큰사람이 있으면 +1 씩 해주면 됩니다.만약 나보다 덩치가 큰 사람이 없으면 나는 자동으로 1 순위가 됩니다.이것을 완전 탐색으로 풀어도 N^2 ( 50*50)이기 때문에 완전탐색으로 풀어줍니다.코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { private static StringBuilder sb; private static Buffe..