본문 바로가기

분류 전체보기37

비트 이동 연산자 (>>>) int[] 에서 특정 정수와 일치하는 값이 있는지 확인하는 코드를 짜다가 Arrays.binarySearch를 봄 이진 탐색 알고리즘은 대충 알고 있어서 java 안에서 어떻게 구현되어 있는지 들여다 봄 private static int binarySearch0(int[] a, int fromIndex, int toIndex, int key) { int low = fromIndex; int high = toIndex - 1; while (low >> 1; // >>는 알고 있었는데 >>> 이것은 또 무엇인가... int midVal = a[mid]; if (midVal key) high = mid - 1; else return mid.. 2023. 10. 24.
삽질 ep.2 (feat. replaceAll) 이번엔 입력 String의 부분 문자열 중에 "one", "two", ...이 있으면 "1", "2"...로 변환하는 문제였음 - ex) input : "2three45sixseven" -> output : "234567" 키, 밸류가 있으니 map을 쓰기로 결정함 정규식으로 숫자와 문자를 구분함 어제 투포인터 알고리즘을 공부했으니 비슷하게 써먹어 보기로 함 (feat. 커피 2잔...) // 정규식을 이용하여 숫자와 문자를 구분 String[] listS = s.split("(? 2023. 10. 23.
Week01 회고 보호되어 있는 글 입니다. 2023. 10. 23.
삽질 ep.1 (feat. compareTo) 프로그래머스 문제 풀다가 제한 사항을 착각하고 2시간 동안 삽질한 썰임... 문제는 "크기가 작은 부분문자열"이고 제한 사항으로 "p의 길이 < t의 길이 < 10,000"가 있었음 여기서... 함수 매개변수의 순서 "(String t, String p)"와 제한사항의 순서 "p < t < 10,000"를 보면 t, p 순서가 다름 그래서 나는 p의 길이가 10,000이하(10의 10,000승??)인 것으로 착각하고 Long.parseLong은 생각도 안 했음... 결국 .charAt() 메서드로 숫자 하나씩 비교해 가면서 매우 무식하게....... 풀긴 풀었음!! int count = 0; int pLen = p.length(); for (int i = 0; i 2023. 10. 22.