Queue
- 자료가 일렬로 놓인 선형 자료구조
- 제일 먼저 추가된 자료가 먼저 나오는 선입선출 자료구조 (FIFO, First In First Out)
public class MyQueue {
private final int[] arr = new int[4];
// Queue에서 데이터 꺼내는 위치
private int front = -1;
// Queue에 데이터를 추가하는 위치
private int rear = -1;
public MyQueue() {}
// 데이터 추가
public void enQueue(int x){
// rear + 1이 배열의 크기만해질 때
if(rear == arr.length-1){
throw new RuntimeException(" queue is full ! ");
}
// rear를 하나 증가시킨다.
rear++;
// arr[rear]에 data를 할당한다.
arr[rear] = x;
}
// 데이터 회수
public int deQueue() {
// front == rear 일 때 , 큐가 비어있음
if(front == rear){
throw new RuntimeException(" queue is empty ! ");
}
// front를 하나 증가시킨다.
front++;
// arr[front]의 값을 반환한다.
return arr[front];
}
// 큐가 비어있는 지 확인
public boolean isEmpty(){
return front == rear;
}
// 다음에 나올 데이터가 무엇인지 확인 (queue에서 빼내지 않음)
public int peek() {
if(isEmpty()){
throw new RuntimeException("queue is empty");
}
// 비어있지 않다면 front + 1 의 값 반환
return arr[front + 1];
}
}
Http
Logger 변수를 생성해주는 @Slf4j 어노테이션 (Lombok)
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Slf4j // log 변수를 생성해주는 어노테이션. sout 대신에 사용
//System.out.println(); -> logger.info(); , logger.warn();
public class MappingController {
private static final Logger logger = LoggerFactory.getLogger(MappingController.class);
}
arrayList는 [0]을 계속 변경하며 유지하려 노력하니까 많은 시간이 쓰일 수 밖에 없다.
중간에 끼어들지 않을 거라면 추가 삭제 정도는 링크드리스트를 써도 성능이 훨씬 더 좋을 수 있다,
'algorithm' 카테고리의 다른 글
[Programmers] [코딩테스트 입문] 최댓값 만들기, 삼각형의 완성조건, 문자열 안에 문자열 (0) | 2024.09.03 |
---|---|
[Programmers] [코딩테스트 입문] 두 수의 나눗셈, 특정 문자 제거하기 (1) | 2024.09.03 |
(230518) 알고리즘 - 괄호풀기 / DB (0) | 2024.07.25 |
(230517) 알고리즘 - Stack(스택) / DB (0) | 2024.07.25 |
(230516) 알고리즘 - 삽입 정렬 (0) | 2024.07.25 |