문제 출처: https://www.acmicpc.net/problem/11478 11478번: 서로 다른 부분 문자열의 개수 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다. www.acmicpc.net 1. 문제 접근방식 먼저 가능한 부분 문자열을 모두 구하고 중복을 제거하는 방식을 생각해보았다.물론 배열 내부에 이미 존재하는지의 여부에 따라 배열에 넣는 방법도 있지만 Java의 HashSet을 이용하여 좀 더 편하게 중복을 제거하였다. ※ HashSet 이란? Set 인터페이스의 구현 클래스이다. 저장 순서가 유지되지 않으며 중복을 허용하지 않는다. 2. 내가 푼 코드 import java.io.BufferedReader; import java.io..
문제 출처: https://www.acmicpc.net/problem/7785 7785번: 회사에 있는 사람 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는 www.acmicpc.net 1. 문제 접근방식 - HashMap 을 사용하여 접근하였다. 이름을 key값으로 하였고 enter인 사람들을 ArrayList에 넣고 출력 시에는 역순으로 출력하였다. 2. 내가 푼 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRea..
문제 출처: https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net 1. 문제 접근방식 - 해시를 이용하여 푸는 방식이다. 먼저 HashSet에 듣도 못한 사람을 넣어두고 보도 못한 사람을 입력받으며 겹치면 별도로 선언한 ArrayList에 넣어주는 방식으로 풀었다. 2. 내가 푼 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;..
문제 출처: https://www.acmicpc.net/problem/17219 17219번: 비밀번호 찾기 첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번 www.acmicpc.net 1. 문제 접근방식 - 해시를 사용해서 푸는 방식이다. 주소값을 key, 비밀번호를 value로 저장하게 되면 get을 이용하여 바로 비밀번호를 출력할 수 있다. 2. 내가 푼 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; impo..