전체 글(754)
-
[알고리즘][3] 입국심사
문제 설명 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 명만 심사를 할 수 있습니다. 가장 앞에 서 있는 사람은 비어 있는 심사대로 가서 심사를 받을 수 있습니다. 하지만 더 빨리 끝나는 심사대가 있으면 기다렸다가 그곳으로 가서 심사를 받을 수도 있습니다. 모든 사람이 심사를 받는데 걸리는 시간을 최소로 하고 싶습니다. 입국심사를 기다리는 사람 수 n, 각 심사관이 한 명을 심사하는데 걸리는 시간이 담긴 배열 times가 매개변수로 주어질 때, 모든 사람이 심사를 받는데 걸리는 시간의 최솟값을 return 하도록 solution 함수를 작성해주세요. 제한사항 입국심사..
2023.09.15 -
[Spring] DI에 대한 나름의 이해
depency injection은 의존관계를 주입해주는 것이다. 이를 통해 DIP를 해결할 수 있다. DIP를 해결하려면 오직 인터페이스(역할)에만 의존하도록 해야 한다. 어떤 구현체를 사용해야 할지는 기획자가 해주어야 한다. AppConfig와 같은 기획자를 통해 생성자 주입을 하게 된다. 생성자 주입이란 생성자를 통해 구현체를 주입해주는 것이다. 주입은 기획자가 한다. 배우와 같은 구현체는 오직 자기가 해야 할 일(실행)만 하면 된다. AppConfig에는 역할이 메소드를 통해 나타나게 되고 구현체가 return 값을 통해 나타나도록 한다. 그렇다. 이렇게 하면 역할과 구현이 구분되어 보여진다. 이렇게 구현하게 되면 사용영역은 인터페이스에만 의존하기 때문에 DIP가 지켜지고 확장을 해도 클라이언트 코..
2023.09.14 -
[Java] final 예약어
final은 상수를 선언한다. 초기화를 해도 되고 생성자로 초기화를 해도 된다. private final int a = 3; private final int a; public Constructor(int a){ this.a = a}
2023.09.14 -
[Spring] OCP와 DIP에 대한 생각
DIP를 위반하게 되면 그러니까 구현체에도 의존하게 되면 OCP도 위반하게 되어 있다. 구현체를 바꾸는 순간 코드를 바꾸는 게 되기 때문 DIP는 인터페이스(역할)에만 의존해야 한다. Reference https://www.inflearn.com/course/lecture?courseSlug=%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8&unitId=55343 학습 페이지 www.inflearn.com
2023.09.14 -
[Java] import static
import static은 클래스의 static method나 변수를 클래스명을 붙이지 않고 사용하도록 해준다. ex) import static org.assertj.core.api.Assertions.*; # assertThat으로 사용 가능 # 원래는 Assertions.assertThat으로 사용해야함
2023.09.14 -
[알고리즘][X] 오프라인/온라인 판매 데이터 통합하기
문제 설명 다음은 어느 의류 쇼핑몰의 온라인 상품 판매 정보를 담은 ONLINE_SALE 테이블과 오프라인 상품 판매 정보를 담은 OFFLINE_SALE 테이블 입니다. ONLINE_SALE 테이블은 아래와 같은 구조로 되어있으며 ONLINE_SALE_ID, USER_ID, PRODUCT_ID, SALES_AMOUNT, SALES_DATE는 각각 온라인 상품 판매 ID, 회원 ID, 상품 ID, 판매량, 판매일을 나타냅니다. Column nameTypeNullable ONLINE_SALE_IDINTEGERFALSE USER_IDINTEGERFALSE PRODUCT_IDINTEGERFALSE SALES_AMOUNTINTEGERFALSE SALES_DATEDATEFALSE 동일한 날짜, 회원 ID, 상품 I..
2023.09.14