본문 바로가기

전체 글361

[2020 카카오 기출] 가사 검색(JAVA) 문제: https://programmers.co.kr/learn/courses/30/lessons/60060 참고 링크: https://shjz.tistory.com/99 shjz님의 블로그 글을 참고해서 해결했습니다. 중요한 점은 3가지 입니다. 1. 트라이 사용 문제 2. 정방향 트라이와 역방향 트라이를 사용 3. 문자열 길이만큼 트라이배열을 만들어서 사용 1. 트라이 사용 문제 각 문자열에 대한 판단을 O(M) (M: 문자열의 길이)에 끝내기 위해 트라이를 사용합니다. 2. 정방향 트라이와 역방향 트라이를 사용 '?'(와일드 카드 식별자)가 중간에 나오지 않는다는 뜻은 '?'가 나온 시점에는 나머지 탐색에 대한 처리가 상수 시간에 끝나야 합니다. 그렇게 처리하지 않고 26(알파벳 크기)^(남은 문자.. 2021. 5. 24.
[2018 카카오 기출] 추석 트래픽(JAVA) https://programmers.co.kr/learn/courses/30/lessons/17676 시뮬레이션 문제입니다. 1. 계산의 편의성을 위해서 시간 정보 String을 파싱해서 double 값으로 비교 연산을 수행했습니다. 2. 1초의 범위를 계산해볼 기준이 되는 구간은 로그 문자열 한 줄의 시작시간과 끝 시간입니다. 그 이유는 두 개 이상의 구간이 겹쳤을 때 겹치는 구간의 시작점 상한, 하한은 어느 한 로그 문자열의 시작점과 끝점입니다. 다시 말하면 정답이 나오는 구간은 최소 하나의 로그 문자열은 시작점과 끝점을 포함할 수 있습니다. 정답이 나오는 구간이 모든 로그 문자열의 중간 지점에서도 나올 수 있지만, 그 구간을 조금만 앞이나 뒤로 밀어서 하나의 로그 문자열의 시작점과 끝점에 맞춰도 여.. 2021. 5. 14.
[2018 카카오 기출] 셔틀버스(JAVA) programmers.co.kr/learn/courses/30/lessons/17678 시뮬레이션 문제입니다. 시간을 다루는 문제를 풀 때는 아래 두 가지 함수를 사용하면 문제 풀이 시간을 단축할 수 있습니다. //1. "HH:MM" 정보를 입력받았을 때 숫자값으로 처리하는 함수 int time2Number(String formatTime); //2. 숫자값으로 처리한 시간을 다시 "HH:MM" 포맷으로 돌리는 함수 String number2Timeformat(int timeNumber); 시간의 범위가 00:00 ~23:59로 되어있으니 시간을 숫자로 파싱한 크기 비교를 통해 버스탑승 여부 판단이 가능합니다. 나머지 부분들은 문제에 나와있는 조건대로 해결하면 됩니다. 코드: github.com/cotc.. 2021. 5. 12.
[2018 카카오 기출] 프렌즈4블록(JAVA) programmers.co.kr/learn/courses/30/lessons/17679 시뮬레이션 문제입니다. m,n 제한이 작으므로 루프를 돌리면서 부숴지는 블록이 없을 때 까지 전부 탐색해주면 됩니다. 코드: github.com/cotchan/algorithm/blob/main/java/PROGRAMMERS/PG17679.java 2021. 5. 12.