바이너리 서치(이진 탐색)
현업에서도 많이 사용하고 있는 이진 탐색 알고리즘을 포스팅 하려고 한다. 이진 탐색을 사용하려면 기본적으로 데이터가 정렬되어 있어야 알고리즘을 사용할 수 있다. binarySearchAsc 함수는 오름차순으로 정렬되어 있는 데이터, binarySearchDesc 함수는 내림차순으로 정렬되어 있는 데이터를 이진탐색하는 함수이다. package sort; import java.util.ArrayList; public class BinarySearch { public static void main(String [] args) { int[] data = new int[]{11, 12, 13, 18, 19, 20, 25, 29, 30, 36}; int[] reverseData = reverseArray(data)..
키패드 누르기
https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 생각나는대로 바로 짜서 9분밖에 안걸렸지만 문제를 너무 어렵게 접근해서 효율 똥망이다. 차라리 HashMap으로 key는 numbers Value, Value는 numbers Index로 만들어서 풀면 엄청 쉬울텐데 말이다. 언제까지 주먹구구식으로 풀래..