Java
-
[Baekjoon Online Judge] 2178번: 미로 탐색문제 풀이/Baekjoon Online Judge 2021. 1. 12. 22:43
2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net [그래프 탐색] DFS와 BFS 1. 그래프란? 그래프는 vertex(정점)와 vertex(정점)를 이어주는 edge(간선)로 이루어져 있다. 정점은 대상이나 개체를 나타내고, 간선은 이들 간의 관계를 나타낸다. 상호 관계가 대칭적이지 않은 hyeonic.tistory.com N x M 크기의 배열로 표현된 미로가 있다. 요구사항 1. 1은 이동할 수 있는 칸을 나타낸다. 0은 이동할 수 없는 칸을 나타낸다. 2. (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸..
-
[Baekjoon Online Judge] 1260번: DFS와 BFS문제 풀이/Baekjoon Online Judge 2021. 1. 12. 22:32
1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net [그래프 탐색] DFS와 BFS 1. 그래프란? 그래프는 vertex(정점)와 vertex(정점)를 이어주는 edge(간선)로 이루어져 있다. 정점은 대상이나 개체를 나타내고, 간선은 이들 간의 관계를 나타낸다. 상호 관계가 대칭적이지 않은 hyeonic.tistory.com 간선을 연결하는 두 정점의 번호를 입력 받아 그래프를 그리고 DFS와 BFS로 탐색한다. DFS와 BFS에 대한 설명은 https://hyeonic.t..
-
[2020 KAKAO BLIND RECRUITMENT] 가사 검색문제 풀이/KAKAO BLIND RECRUITMENT 2021. 1. 10. 23:33
코딩테스트 연습 - 가사 검색 programmers.co.kr 정확성과 효율성 테스트 각각 점수가 있는 문제이다. 가사 단어의 제한사항 - words의 길이(가사 단어의 개수)는 2 이상 100,000 이하이다. - 각 가사 단어의 길이는 1 이상 10,000 이하로 빈 문자열인 경우는 없다. - 전체 가사 단아 길이의 합은 2 이상 1,000,000 이하이다. - 가사에 동일 단어가 여러 번 나올 경우 중복을 제거하고 words에는 하나로만 제공된다. - 각 가사 단어는 오직 알파벳 소문자로만 구성되어 있으며, 특수문자나 숫자는 포함하지 않는 것으로 가정한다. 검색 키워드 제한사항 - queries의 길이(검색 키워드 개수)는 2 이상 100,000 이하이다. - 각 검색 키워드의 길이는 1 이상 10..
-
[Spring] Singleton ContainerProgramming/Java 2021. 1. 8. 21:42
Singleton Pattern에 문제점 1. 싱글톤 패턴 구현을 위한 부가적인 코드가 많이 들어간다. 예를 들면 static final intance, private 생성자 등 2. 의존관계에 있어서 클라이언트가 구체 클래스 자체에 의존하게 된다. DIP(의존 관계 역전의 원칙)를 위반하게 된다. 클라이언트가 구체 클래스에 의존하기 때문에 OCP(개방-폐쇄 원칙) 또한 위반할 가능성이 높다. 3. 테스트 작성이 어렵다. 4. 내부 속성을 변경하거나 초기화하기 어렵다. 5. private 생성자이기 때문에 자식 클래스를 만들기 어렵다. 유연성 또한 떨어진다. Spring에서 사용하는 Spring container는 singleton pattern에 문제점을 해결하고 객체 인스턴스를 singleton으로 ..
-
[Baekjoon Online Judge] 1541번: 잃어버린 괄호문제 풀이/Baekjoon Online Judge 2021. 1. 8. 20:26
1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 괄호가 지워진 수식이 주어진다. 연산자가 + - + - +.. 혹은 - + - + -.. 로 번갈아가면서 나오게 된다. 여기서 규칙성을 찾아보았다. 만약 55-50+40-20+25-10 인 경우 (55) - (50 + 40) - (20 + 25) - (10)이 가장 최소값이 된다. 만약 55+50-40+20-25+10 인 경우 (55+50)-(40+20)-(25+10)이 가장 최소값이 된다. 항상 -를 기준으로 ()를 사용하면 가장 최소값을 구할 수 있다...
-
[Baekjoon Online Judge] 1100번: 하얀 칸문제 풀이/Baekjoon Online Judge 2021. 1. 8. 20:21
1100번: 하얀 칸 체스판은 8*8크기이고, 검정 칸과 하얀 칸이 번갈아가면서 색칠되어 있다. 가장 왼쪽 위칸 (0,0)은 하얀색이다. 체스판의 상태가 주어졌을 때, 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램 www.acmicpc.net 체스판의 하얀 칸 위에 말이 몇 개 있는지 출력하는 문제이다.. import java.io.*; public class Baekjoon1100 { public static void main(String[] args) throws IOException { BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bufferedWriter =..
-
[Baekjoon Online Judge] 9251번: LCS문제 풀이/Baekjoon Online Judge 2021. 1. 8. 20:18
9251번: LCS LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. www.acmicpc.net LCS (Longest Common Subsequence) 공통 부분 수열 중 가장 길이가 긴 것이 바로 최장 공통 부분 수열이다. 문제의 예시를 들어보았다. 문자열 A - ACAYKP 문자열 B - CAPCAK 두개의 문자열이 있다고 가정하자. 두 문자열의 공통 부분 수열은 C, CA, ACA, ACAK, AA 등이 있다. 그중 가장 긴 부분 수열을 구하는 문제이다. 문자열 A - ACAYKP 문자열 B - CAPC..
-
[Baekjoon Online Judge] 10808번: 알파벳 개수문제 풀이/Baekjoon Online Judge 2021. 1. 8. 19:53
10808번: 알파벳 개수 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. www.acmicpc.net import java.io.*; import java.util.HashMap; import java.util.Map; public class Baekjoon10808 { public static void main(String[] args) throws IOException { BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(..