본문 바로가기

Algorithm

(171)
[BOJ-2941][문자열 처리/Map 활용] 크로아티아 알파벳 - Java 문제 바로가기 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 간단한 문자열 처리 문제입니다. 정규 표현식이나 Map을 활용하면 아주 간단하게 풀 수 있습니다. // 정규 표현식 사용 import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new Inpu..
[완전 탐색/소수 판별] 소수 찾기 - Java 문제 바로가기 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr 완전 탐색으로 해당하는 숫자들을 만들고 얘들을 갖고 소수인지 판별하는 문제입니다. import java.util.*; class Solution { StringBuilder sb = new StringBuilder(); Set set = new HashSet(); boolean[] isSelected; int answer = 0; public int solution(String numbers) { isSelected = new boo..
[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..