[Java] PriorityQueue(우선순위 큐) 사용하기
·
Backend/Java
Queue vs PriorityQueueQueue(큐)1) 데이터를 가로로 쌓는 자료구조2) FIFO(First In First Out | 선입선출) : 줄을 선 순서대로 먼저 처리됨! ▼PriorityQueue(우선순위 큐)1) 데이터를 가로로 쌓는 것은 동일2) 선입선출X, 우선순위를 먼저 결정한 후 우선순위가 높은 엘리먼트부터 처리PriorityQueue 특징우선순위 큐에 넣을 객체는 필수적으로 Comparable Interface를 구현해야 함 (우선순위 조건 만드는 것!)PriorityQueue가 자동으로 높은 우선순위 요소를 먼저 꺼내어 처리힙을 이용하여 구현되어 이진트리 구조로 이루어짐힙으로 구성되어 시간 복잡도는 O(NLogN)우선순위를 중요시해야 하는 상황에서 사용됨 (ex. 응급실)Pr..
[Java] 의존성 주입(DI) 장점, 방법, 비교
·
Backend/Java
의존성 주입(DI)이란?객체가 사용(의존)할 파라미터를 외부에서 선언하고, 이를 주입받아서 사용하는 방법!의존성 주입의 장점응집도를 높이고, 결합도를 낮출 수 있다.1. 유지보수가 용이하다.2. 재사용성이 높은 코드가 된다.3. 기능이 분리되어 가독성이 높아진다.의존성 주입 종류Constructor (생성자)Setter (수정자)Field (필드)1. Constructor (생성자)public class User { private String email; private String password; @Autowired public User(String email, String password){ this.email = email; this.password = p..
[Java] Char 문자를 숫자로 변환하는 방법 (CHAR - '0' 이 뭘까?)
·
Backend/Java
알고리즘 문제를 풀다가 난관에 봉착했다.54321 을 입력했을 때,500004000300201이렇게 출력되기를 원했는데, 자꾸 전혀 모르는 숫자가 생기는 것...그래서 도대체 어디서 꼬인걸까 봤는데,바로 아스키코드(ASCII code-2진수)로 표현되었던 것이었다..!아스키코드로 문자 1은 49임!char 문자를 숫자로 변환하는 방법은 바로 - '0' 을 넣어주는 것이다!문자 0은 아스키코드로 48이기 때문에 빼주면 숫자로 변환 완료되는 거!예를 들어,char로 된 배열 arr[1] = 1;arr[1] = (10진수로 표현 시) 1, (2진수로 표현 시) 49;arr[1] - '0' = 49 - 48 = 1;내가 원하는 10진수로 정상적으로 출력되는 것 확인:-D