목록2025/02 (10)
우당탕탕 개발일지
[ 문제 ] 조건이 너무 많음...최신순인기순최신순 + 타입별인기순 + 타입별최신순 + 검색인기순 + 검색최신순 + 타입별 + 검색인기순 + 타입별 + 검색이렇게 8개.....이걸 조건문으로 구현하니까 보기 불편하고 약간 의미없는 느낌....?? 그리고 나중에 정렬 조건이 많아지면 확장성에 어려움이 생기지 않을까? 고민이됨...그래서 일단 GPT한테 물어봄Page entityList = null; if (sortby == 0 && type == 0 && query == null) { // 최신순 entityList = templateRepository.findByAgree(true, pageable); } else if (sortby == ..
문제Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다. Leo가 가진 음식의 스코빌 지수를 담은 배열 scoville과 원하는 스코빌 지수 K가 주어질 때, 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 섞어야 하는 최소 횟수를 return 하도록 solution 함수를 작성해주세요. 제한 사항scoville의 길이는 2 이상 1,000,000 이하입니다.K는 0 이상 1,000,000,000 이하입니다.scoville의 원소는 각각 0 이상 1,000,000 이하입니다.모든 음식의 스코빌 지수를 K 이상으로 만들 수 없는 경우에는 -1을 return 합니다. 입출력 예 풀이1차 시도스코빌 지수가 가장 낮은 2개 음식이라고 했으니, PriorityQueue에 저장하여 오름차..
템플릿 인기순 출력* 인기순: 찜하기 개수 기준 내림차순 정렬템플릿 entity에 찜하기 개수를 저장하는 컬럼이 없는데 어떻게 출력하지? 고민....일단 GPT 도움 받아서 Page 반환하는 쿼리문 만들어봄..! 인기순 출력 시 Page 반환템플릿 인기순으로 정렬 후, Template 정보와 찜하기 개수를 가져오고 싶었다. 그래서 아래처럼 DTO를 반환할까? 했는데 Repository에서 DTO 사용은 MVC패턴에 올바른 방법은 아닌 것 같다.. 그래서 TemplateEntity에 List에 추가했다.TemplateEntity에서 필요없다고 생각했는데, 찜하기 개수가 필요해서 있어야 할것같다... 그래서 쿼리문도 바뀜 나중에 DTO로 변환하는 메소드에 List.size()값을 저장하도록 했다. 다하..
문제 입출력 예시풀이 머리로 잘 그려지지 않아서 엑셀에 표현해봄!나는 프로세스명을 '인덱스P'로 표현하였고 큐에 저장함 currentIndex: 프로세스명에서 추출currentProcess: 실행할 프로세스currentPrioiry: 프로세스의 우선순위maxPriority: 최고 우선순위 현재 프로세스의 우선순위보다 더 높은 프로세스가 있다고 판단>> 큐에 해당 프로세스 add() 현재 프로세스가 가장 높은 우선순위임!answer은 프로세스가 실행한 순서를 의미하기에 +1 현재 실행한 프로세스가 문제에서 원하는 값일 경우에 반환그렇지 않으면 우선순위 재설정함(남아있는 프로세스 중에서 최고 우선순위 값 저장) 최종 코드public int s6(int[] priorities, int loc..
문제대장균 개체의 크기가 100 이하라면 'LOW', 100 초과 1000 이하라면 'MEDIUM', 1000 초과라면 'HIGH' 라고 분류합니다. 대장균 개체의 ID(ID) 와 분류(SIZE)를 출력하는 SQL 문을 작성해주세요.이때 결과는 개체의 ID 에 대해 오름차순 정렬해주세요. 결과 예시 풀이CASE 문법을 사용하여야 한다!사실 사용법을 까먹어서... 찾아봤다.. CASE 문법case when 조건 then '값' when 조건 then '값' when 조건 then '값' eles '값'END as 컬럼명 최종 SQLselect ID, case when SIZE_OF_COLONY 1000 then 'HIGH'END as SIZEfrom ECOLI_DATA..
문제천재지변으로 인해 일부 데이터가 유실되었습니다. 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을 ID 순으로 조회하는 SQL문을 작성해주세요. 정답 예시 풀이left join까지 했는데 조건문을 어떻게 작성해야할지 잘 모르겠다...구글링을 해보니 isnull 함수가 있었다. isnull(컬럼)해당 컬럼의 값이 NULL인 행을 남긴다.이를 함수르 이용하여 조건문을 사용하니 쉽게 풀렸다...!! 최종 SQLSELECT ANIMAL_OUTS.ANIMAL_ID, ANIMAL_OUTS.NAMEfrom ANIMAL_OUTSleft join ANIMAL_INS on ANIMAL_OUTS.ANIMAL_ID = ANIMAL_INS.ANIMAL_IDwhere isnull(ANIMAL_I..
문제FOOD_PRODUCT 테이블에서 가격이 제일 비싼 식품의 식품 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격을 조회하는 SQL문을 작성해주세요. 결과 예시 풀이1차 시도max(PRICE)로 가장 높은 가격을 출력하긴 했다.하지만 이외의 정보가 맞지 않았다... SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, max(PRICE)from FOOD_PRODUCT 2차시도그래서 조건절에 max(PRICE) 를 사용하였다.하지만 오류발생했다.... max의 기준이 없어서 그런듯하다. SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICEfrom FOOD_PRODUCT where PRICE = ..
문제ONLINE_SALE 테이블과 OFFLINE_SALE 테이블에서 2022년 3월의 오프라인/온라인 상품 판매 데이터의 판매 날짜, 상품ID, 유저ID, 판매량을 출력하는 SQL문을 작성해주세요. OFFLINE_SALE 테이블의 판매 데이터의 USER_ID 값은 NULL 로 표시해주세요. 결과는 판매일을 기준으로 오름차순 정렬해주시고 판매일이 같다면 상품 ID를 기준으로 오름차순, 상품ID까지 같다면 유저 ID를 기준으로 오름차순 정렬해주세요. 결과 예시 풀이날짜 함수를 까먹었다...구글링해서 날짜에서 월과 년도를 구했다SELECT SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNTfrom ONLINE_SALE where month(SALES_DATE) = 3 and y..