문제 출처: 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/11656 11656번: 접미사 배열 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. www.acmicpc.net 1. 문제 접근방식 - 문자를 하나하나 쪼개서 String 배열에 담고 배열의 문자들을 순차적으로 더해 접미사를 만든 후 배열을 정렬하여 출력하는 방식이다. 2. 내가 푼 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class boj11656 { public static void m..
문제 출처: https://www.acmicpc.net/problem/20291 20291번: 파일 정리 친구로부터 노트북을 중고로 산 스브러스는 노트북을 켜자마자 경악할 수밖에 없었다. 바탕화면에 온갖 파일들이 정리도 안 된 채 가득했기 때문이다. 그리고 화면의 구석에서 친구의 메시지를 www.acmicpc.net 1. 문제 접근방식 - '.'을 기준으로 분리해서 TreeMap에 넣어두고 작업하는 방법이 먼저 생각났다. 여기서 HashMap과 TreeMap의 차이를 살짝 알아보면 TreeMap의 경우 기본적인 동작은 HashMap과 같고 부가적으로 SortedMap을 상속받아 사용하므로 key값을 기준으로 정렬이 이루어진 상태로 들어가게 된다. 2. 내가 푼 코드 import java.io.Buffer..
문제 출처: https://www.acmicpc.net/problem/20114 20114번: 미아 노트 첫째 줄에 원래 문자열의 길이 N, 세로로 번진 글자의 개수 H, 가로로 번진 글자의 개수 W가 주어진다. (1 ≤ N ≤ 100, 1 ≤ H ≤ 10, 1 ≤ W ≤ 10) 둘째 줄부터 H개의 줄에 걸쳐 N × W 길이의 문자열이 www.acmicpc.net 1. 문제 접근방식 - 같은 문자가 가로로 번진 W만큼 반복된다. 단어를 문자마다 쪼개고 '?' 일 때는 넘어가고 다른 문자일 경우 현재 인덱스를 W로 나눈 몫의 인덱스에 있는 문자가 결과값 문자가 되도록 한다. 2. 내가 푼 코드 import java.io.BufferedReader; import java.io.IOException; impo..