본문 바로가기

Algorithm/Programmers

(46)
[2017 카카오코드 예선][BFS] 카카오프렌즈 컬러링북 - Java 문제 바로가기 코딩테스트 연습 - 카카오프렌즈 컬러링북 6 4 [[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]] [4, 5] programmers.co.kr 간만에 간단한 BFS 문제입니다. 맨첨에 색깔이 같으면 같은 영역이라고 생각했는데 그것도 아니고 그냥 따로 봐주면 돼서 더 간단합니다. import java.util.*; class Solution { static class Dir { int y, x; Dir(int y, int x) { this.y = y; this.x = x; } } int[] dy = { 1, -1, 0, 0 }; int[] dx = { 0, 0, 1, -1 }; boolean..
[2019 카카오 개발자 겨울 인턴십][이분 탐색(Parametric Search)] 징검다리 건너기 - Java 문제 바로가기 코딩테스트 연습 - 징검다리 건너기 [2, 4, 5, 3, 2, 1, 4, 2, 5, 1] 3 3 programmers.co.kr 오우 만만치 않은 문제입니다. 마찬가지로 효율성을 확보해야 하는 문제입니다. import java.util.*; class Solution { public int solution(int[] stones, int k) { // Parametric Search return parametric_search(stones, k); } public int parametric_search(int[] stones, int k) { int l = Arrays.stream(stones).min().getAsInt(); int r = Arrays.stream(stones).max(..
[Trie] 전화번호 목록 - Java 문제 바로가기 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 풀고 나니 이 문제랑 거의 똑같네용 마찬가지로 Trie로 풀었습니다. import java.util.*; class Solution { static class TrieNode { Map childNodes = new HashMap(); boolean isLastChar; } static class Trie { TrieNode root = new TrieNode(); void insert(String input) { TrieNode cur = r..
[2019 카카오 개발자 겨울 인턴십][Map 활용/DFS] 호텔 방 배정 - Java 문제 바로가기 코딩테스트 연습 - 호텔 방 배정 programmers.co.kr 효율성까지 채점되는 문제입니다. 아이디어는 Map 활용! import java.util.*; class Solution { Map map = new HashMap(); public long[] solution(long k, long[] room_number) { long[] answer = new long[room_number.length]; int idx = 0; for(long rn : room_number) { answer[idx++] = findRoom(rn); } return answer; } public long findRoom(long rn) { if(map.containsKey(rn) == false) { ma..
[2019 카카오 개발자 겨울 인턴십][문자열 처리/DFS] 불량 사용자 - Java 문제 바로가기 코딩테스트 연습 - 불량 사용자 개발팀 내에서 이벤트 개발을 담당하고 있는 무지는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량 programmers.co.kr 생각보다 좀 까다로웠던 문제입니다.. 정규 표현식을 잘 써야할텐데 ㅜ import java.util.*; import java.util.regex.*; class Solution { Set answerSet = new HashSet(); boolean[] v; public int solution(String[] user_id, String[] banned_id) { v = new boolean[user_id.length]; for(int i = 0; ..
[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..
[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..