목록전체 글 (159)
자바칩

난이도: Silver 1문제: https://www.acmicpc.net/problem/1389 문제케빈 베이컨의 6단계 법칙에 의하면 지구에 있는 모든 사람들은 최대 6단계 이내에서 서로 아는 사람으로 연결될 수 있다. 케빈 베이컨 게임은 임의의 두 사람이 최소 몇 단계 만에 이어질 수 있는지 계산하는 게임이다.예를 들면, 전혀 상관없을 것 같은 인하대학교의 이강호와 서강대학교의 민세희는 몇 단계만에 이어질 수 있을까?천민호는 이강호와 같은 학교에 다니는 사이이다. 천민호와 최백준은 Baekjoon Online Judge를 통해 알게 되었다. 최백준과 김선영은 같이 Startlink를 창업했다. 김선영과 김도현은 같은 학교 동아리 소속이다. 김도현과 민세희는 같은 학교에 다니는 사이로 서로 알고 있다...

난이도: Gold 5문제: https://www.acmicpc.net/problem/9205 문제송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. 맥주 한 박스에는 맥주가 20개 들어있다. 목이 마르면 안되기 때문에 50미터에 한 병씩 마시려고 한다. 즉, 50미터를 가려면 그 직전에 맥주 한 병을 마셔야 한다.상근이의 집에서 페스티벌이 열리는 곳은 매우 먼 거리이다. 따라서, 맥주를 더 구매해야 할 수도 있다. 미리 인터넷으로 조사를 해보니 다행히도 맥주를 파는 편의점이 있다. 편의점에 들렸을 때, 빈 병은 버리고 새 맥주 병을 살 수 있다. 하지만, 박스에 들어있는..
난이도: Silver 1문제: https://www.acmicpc.net/problem/14940 문제지도가 주어지면 모든 지점에 대해서 목표지점까지의 거리를 구하여라.문제를 쉽게 만들기 위해 오직 가로와 세로로만 움직일 수 있다고 하자.입력지도의 크기 n과 m이 주어진다. n은 세로의 크기, m은 가로의 크기다.(2 ≤ n ≤ 1000, 2 ≤ m ≤ 1000)다음 n개의 줄에 m개의 숫자가 주어진다. 0은 갈 수 없는 땅이고 1은 갈 수 있는 땅, 2는 목표지점이다. 입력에서 2는 단 한개이다.출력각 지점에서 목표지점까지의 거리를 출력한다. 원래 갈 수 없는 땅인 위치는 0을 출력하고, 원래 갈 수 있는 땅인 부분 중에서 도달할 수 없는 위치는 -1을 출력한다. BFS 알고리즘을 잘 숙지하고 있으면 ..
JPA(Java Persistence API)에서 엔티티를 로드하는 방식은 크게 두 가지로 나뉜다.즉시 로딩(FetchType.EAGER)지연 로딩(FetchType.LAZY)각각의 로딩 방식은 엔티티를 데이터베이스에서 가져오는 시점과 방식에 차이가 있다. 즉시 로딩 (FetchType.EAGER)즉시 로딩은 엔티티가 로드될 때 관련된 엔티티들도 함께 로드되는 방식이다.즉, 주 엔티티를 가져오는 시점에 관련된 모든 엔티티들을 즉시 데이터베이스에서 조회한다. 특징주 엔티티와 연관된 모든 엔티티들을 한 번에 로드하기 때문에 N + 1 문제를 유발할 수 있따.쿼리가 복잡해질 수 있으며, 성능에 영향을 줄 수 있다.코드가 단순해지고, 관련 엔티티에 바로 접근할 수 있어 편리하다.@ManyToOne과 @OneTo..
난이도: Silver 1문제: https://www.acmicpc.net/problem/1743 문제코레스코 콘도미니엄 8층은 학생들이 3끼의 식사를 해결하는 공간이다. 그러나 몇몇 비양심적인 학생들의 만행으로 음식물이 통로 중간 중간에 떨어져 있다. 이러한 음식물들은 근처에 있는 것끼리 뭉치게 돼서 큰 음식물 쓰레기가 된다. 이 문제를 출제한 선생님은 개인적으로 이러한 음식물을 실내화에 묻히는 것을 정말 진정으로 싫어한다. 참고로 우리가 구해야 할 답은 이 문제를 낸 조교를 맞추는 것이 아니다. 통로에 떨어진 음식물을 피해가기란 쉬운 일이 아니다. 따라서 선생님은 떨어진 음식물 중에 제일 큰 음식물만은 피해 가려고 한다. 선생님을 도와 제일 큰 음식물의 크기를 구해서 “10ra"를 외치지 않게 도와주자..
난이도: Silver 1문제: https://www.acmicpc.net/problem/1926 문제어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로로 연결된 것은 연결이 된 것이고 대각선으로 연결이 된 것은 떨어진 그림이다. 그림의 넓이란 그림에 포함된 1의 개수이다.입력첫째 줄에 도화지의 세로 크기 n(1 ≤ n ≤ 500)과 가로 크기 m(1 ≤ m ≤ 500)이 차례로 주어진다. 두 번째 줄부터 n+1 줄 까지 그림의 정보가 주어진다. (단 그림의 정보는 0과 1이 공백을 두고 주어지며, 0은 색칠이 안된 부분, 1은 색칠이 된 부분을 의미한다)출력첫째 ..

난이도: Silver 1문제: https://www.acmicpc.net/problem/2583 문제에 주어진 모눈종이는 세로가 M, 가로가 N이지만코드를 작성할 때는 가로가 M, 세로를 N으로 배열을 초기화하자. => new int[N][M] 2차원 배열 초기화 방법:for (i: 왼쪽 아래 꼭짓점의 x좌표 ~ 오른쪽 아래 꼭짓점의 x좌표 - 1까지) for (j: 왼쪽 아래 꼭짓점의 y좌표 ~ 오른쪽 아래 꼭짓점의 y좌표 -1까지) paper[i][j] = 1; 그 이후는 BFS 알고리즘을 잘 알면 쉽게 풀 수 있다.영역을 체크할 때는 영역 체크 변수 cnt를 2로 초기화해서 새로운 칸에 방문할 때마다 cnt를 1씩 증가시키면 된다.그리고 마지막에 방문한 x좌표와 y좌표의 영역 크..
디자인 패턴역할어댑터 패턴 (Adapter Pattern)호출당하는 쪽의 메서드를 호출하는 쪽의 코드에 대응하도록 중간에 변환기를 통해 호출하는 패턴 프록시 패턴 (Proxy Pattern) 제어 흐름을 조정하기 위한 목적으로 중간에 대리자를 두는 패턴 데코레이터 패턴 (Decorator Pattern) 메서드 호출의 반환값에 변화를 주기 위해 중간에 장식자를 두는 패턴 싱글톤 패턴 (Singleton Pattern) 클래스의 인스턴스, 즉 객체를 하나만 만들어 사용하는 패턴 템플릿 메서드 패턴 (Template Method Pattern) 상위 클래스의 견본(템플릿) 메서드에서 하위 클래스가 오버라이딩한 메서드를 호출하는 패턴 팩토리 메서드 패턴 (Factory Method Pattern) 오버라..