이진탐색 관련 문제를 풀던 중, Arrays에 binarySearch 메서드가 있는 걸 발견하였다! 원래는 직접 이진탐색을 구현하여 사용하였지만 컬렉션에서 지원된다면 사용하는 게 더 효율적일 것 같다. 그래서 이번엔 binarySearch 메서드를 알아보려고 한다. 정의 binarySearch 메서드를 타고 들어가보면 이렇게 긴 설명이 있다. Searches the specified array of ints for the specified value using the binary search algorithm. The array must be sorted (as by the sort(int[]) method) prior to making this call. If it is not sorted, the r..
프로그래밍 언어
int one = Integer.valueOf(String.valueOf('1')); // 뭔가 잘못됐음을 느낌 이전까지 알고리즘 문제를 풀 때 char를 String으로 변경한 후 Integer.valueOf를 사용했는데 뭔가 잘못됐음을 느꼈다. 이번에 정확하게 정리하려고 함 캐릭터형은 정수값으로 관리되기 때문에 바로 Integer로 변경하려고 하면 이상한 값이 나오게된다. '1'이 아스키코드 49 이런식으로 판별되기 때문이다. 그래서 정확하게 형변환해주는 게 중요하다! 1. Character.getNumericValue() 사용 int one = Character.getNumericValue('1'); //1 컬렉션에서 지원하는 문법이다 가장 가독성이 좋은 것 같다. 꼭 외워둬야지 2. ASCII 코..
[Java] java.lang.IllegalStateException: Module entity with name: [] should be available 자바, 인텔리제이 오류
문제상황 깃허브에서 프로젝트를 clone 받은 상태 gradle을 reload할 때 해당 오류가 발생 sdk와 gradle을 맞게 세팅했음에도 해당 오류가 뜸 문제해결 setting.gradle의 프로젝트 이름을 정확하게 적기(대소문자까지 정확하게) 참고한 블로그 https://potwings.tistory.com/49
2달 전만해도 잘 돌아가던 프로젝트가 빌드가 안됨. https://start.spring.io 사이트에서 받아온 프로젝트였고, 자바 버전을 17로 선택하였음. 에러메시지: 구글링을 해보니 자바 17버전을 찾을 수 없다는 메시지였다. 한 달 전 쯤에 jdk를 하나 다운받았었는데 이게 문제였다. https://velog.io/@persestitan/Spring-Cause-error-invalid-source-release-17-%ED%95%B4%EA%B2%B0%EB%B0%A9%EB%B2%95-IntelliJ [Spring] Cause: error: invalid source release: 17 해결방법 (IntelliJ) (이 포스팅은 맥북을 기준으로 작성하였습니다.)JDK가 18로 했길레 17로 바꾸어 ..
#1. string.replace() str = "ab!cd!ef" str = str.replace("!", "") 없애고 싶은 문자를 공백으로 대체하기 #2. string.join() str = "ab!cd!ef?" str = ''.join(x for x in str if x not in ['!', '?']) 없애고 싶은 문자의 종류가 많을 때 유용할 것 같다. #3. re.sub() import re string = "ab!cd!ef?" string = re.sub("\!|\'|\?","",string) 정규식 사용.. (치환하고 싶은 문자열의 정규표현, 새로운 문자열의 정규표현, 변수, [,치환횟수]) #4. translate(table) str = "ab!cd!ef" table = str.make..
힙 자료구조 - 최소 힙: 부모 노드가 항상 자식보다 작거나 같은 값을 갖는 이진트리 - 최대 힙: 부모 노드가 항상 자식보다 크거나 같은 값을 갖는 이진트리 - 최댓값or최솟값을 빠르게 찾을 수 있음 - 요소 추가/삭제 시 데이터 자동정렬 - 루트 heap[0]은 항상 최소 값 저장 - 삭제(pop): 항상 루트 값을 삭제(최소값) - 힙을 이용하여 오름차순/ 내림차순 정렬 가능(힙정렬) heap모듈 - 최소 힙 자료구조(리스트 기반) - 내장 모듈 import heapq heap = [] 기본 리스트를 생성해야함. (여기다가 넣고 뺄 거) ■ 원소 추가 heapq.heappush(heap, 2) heapq.heappush(heap, 1) heapq.heappush(heap, 3) heappush: O..
1. value값을 기준으로 딕셔너리 정렬 dic = {1:4, 2:3, 3:2, 4:1} sorted(dic.items(), key=lambda x:x[1]) # 오름차순 sorted(dic.items(), key=lambda x:x[1], reverse=True) # 내림차순 2. value값을 기준으로 key 정렬 dic = {1:4, 2:3, 3:2, 4:1} sorted(dic.keys(), key=lambda x:dic[x]) sorted(dic, key=lambda x:dic[x]) 키 값들만 정렬! .keys()를 생략하든 안하든 같은 결과를 냅니다.
from itertools import cycle a = cycle([1,2,3]) print(next(a)) print(next(a)) print(next(a)) print(next(a)) print(next(a)) 순환하는 배열 만들기
파이썬에서 반올림은 round함수를 사용합니다. round - 파이썬의 내장함수(import 필요x) - 두 번째 매개변수로 반올림 자릿수 결정가능 ex) round(1.5555, 2) = 1.56 # 두 번째 자리까지 표시 - 대부분의 경우 일반적으로 생각하는 반올림기능 수행 - 1.5, 2.5, 3.5 경우 자신과 가장 가까운 짝수 반환 ◼︎ 일반적인 반올림 기능 ◼︎ .5 경우 자신과 가장 가까운 짝수 반환 일반적으로 0.5 반올림은 1이라고 생각하실텐데, 파이썬 round함수는 0을 반환합니다. 여기서도 마찬가지로 1.57을 원했는데 1.56이 나와버립니다. 1) 정수부분이 짝수일 경우 0.1을 더하여 round함수 사용 원래 round(0.5) = 0 인데 1이 나옵니다. 조금 더 일반화 하면 ..
Q. 3번째 자리에서 반올림 하고싶다! 1. round함수 public static long round(double a) round는 소수점 첫 째 자리에서 반올림하여 정수값을 반환해준다. 3번째 자리에서 반올림 하고싶다면 1) 원하는 값에 100을 곱한 뒤 2) 그 값을 round함수에 넣어주고 3) 거기에 100을 나눠주면 된다. 이 때 반환값이 long 정수라는 것에 주의하여 형변환 잘해주자. 2. String.format("%.2f", num) 하고 float으로 형변환 %.2f를 이용해주면 소수점 2번째자리까지 표현된 String값이 나온다. (3번째 자리에서 반올림됨) 이걸 float값으로 받고싶다면 Float.parseFloat() 함수에 집어넣어주면 된다. 3. 곱하고 0.5더해서 int..