분류 전체보기(754)
-
[알고리즘][X] 자동차 대여 기록 별 대여 금액 구하기
문제 설명 다음은 어느 자동차 대여 회사에서 대여 중인 자동차들의 정보를 담은 CAR_RENTAL_COMPANY_CAR 테이블과 자동차 대여 기록 정보를 담은 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 자동차 종류 별 대여 기간 종류 별 할인 정책 정보를 담은 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블 입니다. CAR_RENTAL_COMPANY_CAR 테이블은 아래와 같은 구조로 되어있으며, CAR_ID, CAR_TYPE, DAILY_FEE, OPTIONS 는 각각 자동차 ID, 자동차 종류, 일일 대여 요금(원), 자동차 옵션 리스트를 나타냅니다. Column nameTypeNullable CAR_IDINTEGERFALSE CAR_TYPEVARCHAR(..
2023.10.03 -
[Spring] ComponentScan에 대한 나름의 이해
@ComponentScan을 붙이게 되면 @Component가 붙은 모든 class를 빈으로 자동 등록한다. 이때 발생할 수 있는 문제점이 의존관계를 어떻게 주입할지이다. 그래서 생성자 위에 @Autowired를 붙여주면 자동으로 의존관계를 주입해준다. ac.getBean(type.class)과 같이 컨테이너에서 type으로 찾아서 주입한다고 볼 수 있다. 그러면 충돌이 발생할 수도 있는데 이는 다음에 다룬다. excludedFilters를 활용하면 원치 않는 component는 제외할 수 있다. 그리고 등록이 될 때는 class 이름이 이름으로 등록되는데 앞글자가 소문자로 바뀐다. Reference https://www.inflearn.com/course/lecture?courseSlug=%EC%8A%..
2023.10.02 -
[알고리즘] 표현 가능한 이진트리
문제 설명 당신은 이진트리를 수로 표현하는 것을 좋아합니다. 이진트리를 수로 표현하는 방법은 다음과 같습니다. 이진수를 저장할 빈 문자열을 생성합니다. 주어진 이진트리에 더미 노드를 추가하여 포화 이진트리로 만듭니다. 루트 노드는 그대로 유지합니다. 만들어진 포화 이진트리의 노드들을 가장 왼쪽 노드부터 가장 오른쪽 노드까지, 왼쪽에 있는 순서대로 살펴봅니다. 노드의 높이는 살펴보는 순서에 영향을 끼치지 않습니다. 살펴본 노드가 더미 노드라면, 문자열 뒤에 0을 추가합니다. 살펴본 노드가 더미 노드가 아니라면, 문자열 뒤에 1을 추가합니다. 문자열에 저장된 이진수를 십진수로 변환합니다. 이진트리에서 리프 노드가 아닌 노드는 자신의 왼쪽 자식이 루트인 서브트리의 노드들보다 오른쪽에 있으며, 자신의 오른쪽 자..
2023.10.02 -
[Java] ThreadLocal에 대한 나름의 이해
멀티쓰레드 환경에서 필드값을 변경하게 되면 원하지 않는 값이 다른 쓰레드에서 확인되는 문제가 발생한다 이에 대한 해결책으로 로컬변수와 매개변수를 활용하여 return 값으로 주고 이를 받아서 사용하는 방법이 있다 그러나 이 방법은 값을 한번만 받아서 사용해야 하기 때문에 클래스에 저장하고 불러오는 것보다 번거로움이 있다 이를 해결해줄 수 있는 방법이 ThreadLocal이다 ThreadLocal은 set과 get, remove를 가진다 이 객체를 통해 등록을 하게 되면 쓰레드 간에 공유될 수 있는 문제가 해결된다 Threadpool을 하게 되면 이전 정보가 남아있어 이를 가지고 오는 등 문제가 생기기 때문에 다 사용을 하면 remove를 통해서 지워주어야 한다 Reference https://sabara..
2023.10.02 -
[알고리즘] 취소되지 않은 진료 예약 조회하기
문제 설명 다음은 환자 정보를 담은 PATIENT 테이블과 의사 정보를 담은 DOCTOR 테이블, 그리고 진료 예약목록을 담은 APPOINTMENT에 대한 테이블입니다. PATIENT 테이블은 다음과 같으며 PT_NO, PT_NAME, GEND_CD, AGE, TLNO는 각각 환자번호, 환자이름, 성별코드, 나이, 전화번호를 의미합니다. Column nameTypeNullable PT_NOVARCHAR(N)FALSE PT_NAMEVARCHAR(N)FALSE GEND_CDVARCHAR(N)FALSE AGEINTEGERFALSE TLNOVARCHAR(N)TRUE DOCTOR 테이블은 다음과 같으며 DR_NAME, DR_ID, LCNS_NO, HIRE_YMD, MCDP_CD, TLNO는 각각 의사이름, 의사I..
2023.10.02 -
[알고리즘] 오랜 기간 보호한 동물(2)
문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAMETYPENULLABLE ANIMAL_IDVARCHAR(N)FALSE ANIMAL_TYPEVARCHAR(N)FALSE DATETIMEDATETIMEFALSE INTAKE_CONDITIONVARCHAR(N)FALSE NAMEVARCHAR(N)TRUE SEX_UPON_INTAKEVARCHAR(N)FALSE ANIMAL_..
2023.10.02