본문 바로가기

Algorithm

(172)
[2019 카카오 개발자 겨울 인턴십][구현/문자열 처리] 튜플 - Java 문제 바로가기 부분집합이 주어지고 얘들을 갖고 튜플을 만드는 문제입니다. 최대 개수를 잘못 보고 엉뚱하게 풀뻔 했네욤 ^^;; import java.util.*; class Solution { public int[] solution(String s) { List sets = new ArrayList(); String[] arr = s.replaceAll("[{}]", " ").trim().split(" , "); int[] answer = new int[arr.length]; Arrays.sort(arr, (o1, o2)->{ return o1.length() - o2.length(); }); for(String str : arr) { List temp = new ArrayList(); for(Strin..
[BOJ-11003][슬라이딩 윈도우] 최솟값 찾기 - Java 문제 바로가기 11003번: 최솟값 찾기 N개의 수 A1, A2, ..., AN과 L이 주어진다. Di = Ai-L+1 ~ Ai 중의 최솟값이라고 할 때, D에 저장된 수를 출력하는 프로그램을 작성하시오. 이때, i ≤ 0 인 Ai는 무시하고 D를 구해야 한다. www.acmicpc.net 시간 제한이 굉장히 빽빽합니다. 슬라이딩 윈도우 개념을 적용하면 풀 수 있는데.. 시간을 줄이기 위한 최대한의 노력을 해야합니다. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws Exception { input(); } public static void input() throws E..
[BOJ-11659][구간 합] 구간 합 구하기 4 - Java 문제 바로가기 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N (1 ≤ N ≤ 100,000), 합을 구해야 하는 횟수 M (1 ≤ M ≤ 100,000)이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에 www.acmicpc.net 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 문제입니다. prefix sum을 입력받을 때 구해서 O(N) 타임으로 구할 수 있습니다. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws Exception { input(); } public s..
[BOJ-2696][우선순위 큐] 중앙값 구하기 - Java 문제 바로가기 2696번: 중앙값 구하기 첫째 줄에 테스트 케이스의 개수 T(1
[BOJ-11404][APSP/플로이드-와샬] 플로이드 - Java 문제 바로가기 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net 제목부터 플로이드 입니다. APSP(All Pairs Shortest Path) 알고리즘인 플로이드-와샬 알고리즘을 사용해서 푸는 문제입니다. import java.io.*; import java.util.*; public class Main { static final int MAX = 10000000; static int N, M; static int[][] dist; public static void main(String[] args) throw..
[2018 KAKAO BLIND RECRUITMENT][구현] n진수 게임 - Java 문제 바로가기 코딩테스트 연습 - [3차] n진수 게임 N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0 programmers.co.kr 2018 카카오 문제 끝!!! 요때는 특별한 알고리즘을 요구하는 문제가 많지 않았네영.. 내년 코테때는 꼭 올솔을... import java.util.*; class Solution { Map antilog = new HashMap(); public String solution(int n, int t, int m, int p) { StringBuilder list = new StringBuilder();// 말해야 하는 숫자 리스트..
[2018 KAKAO BLIND RECRUITMENT][문자열 처리/PQ] 파일명 정렬 - Java 문제 바로가기 코딩테스트 연습 - [3차] 파일명 정렬 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램 programmers.co.kr 많이 어렵지 않은 문제입니다. 문자열을 이쁘게 자르는게 관건입니다. import java.util.*; class Solution { static class File implements Comparable { String name, head, tail; int order, number; File(String filename, int order){ this.name = filename; this.order = order; StringBui..
[2018 KAKAO BLIND RECRUITMENT][Map 활용] 압축 - Java 문제 바로가기 코딩테스트 연습 - [3차] 압축 TOBEORNOTTOBEORTOBEORNOT [20, 15, 2, 5, 15, 18, 14, 15, 20, 27, 29, 31, 36, 30, 32, 34] programmers.co.kr 주어진 문자열을 LZW 알고리즘으로 압축시키는 문제입니다. 음.... 하라는대로 하면 됩니당 ㅎㅎ. import java.util.*; class Solution { public int[] solution(String msg) { Map dict = new HashMap(); List list = new ArrayList(); // 사전 초기화 for(char c = 'A'; c