본문 바로가기

Algorithm/프로그래머스

(48)
[SQL] 즐겨찾기가 가장 많은 식당 정보 출력하기 / 왜 MAX()가 안될까? https://school.programmers.co.kr/learn/courses/30/lessons/131123 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 그냥 보기에는 간단한 문제여서 group by 를 사용하여 max()로 출력해주었지만 답이 틀리게 나온다. SELECT FOOD_TYPE, REST_ID, REST_NAME, MAX(FAVORITES) AS FAVORITES FROM REST_INFO GROUP BY FOOD_TYPE ORDER BY FOOD_TYPE DESC 왜 MAX()는 안될까?? 그 해답은 아래의 글에 작성되어있다. ht..
[SQL] 그룹별 조건에 맞는 식당 목록 출력하기 https://school.programmers.co.kr/learn/courses/30/lessons/131124 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 해결방법 1. 두 테이블을 JOIN한다. 2. REST_REVIEW 테이블에서 group by 명령어로 MEMBER_ID를 그룹화 한다. 3. MEMBER_ID을 Count로 개수를 구하고, 내림차순에 limit 1로 가장 큰 값을 구한다. 4. 조건에 맞게 정렬. 2. 정답코드 select A.MEMBER_NAME, B.REVIEW_TEXT, DATE_FORMAT(B.REVIEW_DATE..
[SQL] 보호소에서 중성화한 동물 https://school.programmers.co.kr/learn/courses/30/lessons/59045 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 해결방법 1. 보호소를 나간 애완동물을 기준이기 때문에 OUTS을 기준으로 INS를 left outer join한다. 2. 보호소에 왔을 때는 중성화가 아니지만 나갈 때는 중성화가 된 상태여야한다. -> 즉, INS의 중성화 데이터와 OUTS의 중성화 데이터가 다르다면 그 애완동물은 보호소에서 중성화 수술을 한 동물이 된다. 3. 동물 번호 기준으로 오름차순. 2. 정답코드 select OU..
[SQL] 없어진 기록 찾기 https://school.programmers.co.kr/learn/courses/30/lessons/59042 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 해결방법 1. ANIMAL_OUTS을 기준으로 ANIMAL_INS테이블을 left outer join을 한다. -> 입양을 간 기록을 찾기 때문 2. ANIMAL_ID가 같은 값이 ANIMAL_INS 테이블에 존재하지 않는다면, NULL 값으로 연결 3. 이를 통해, ANIMAL_OUTS 에는 있지만 ANIMAL_INS에는 없는 ANIMAL_ID 의 값을 조회할 수 있게 됩니다. 2. 정답코..
[SQL] 서울에 위치한 식당 목록 출력하기 https://school.programmers.co.kr/learn/courses/30/lessons/131118 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 해결방법 1. 리뷰 테이블에 대해 식당 테이블을 join한다. 2. round와 avg를 이용해서 소수점 두 번째 자리와 평균을 낸다. 3. 식당 번호를 기준으로 group by를 한다. 4. group by에 조건을 추가하기 위해 having에 like로 주소에 '서울'에 해당하는 데이터를 선정한다. 5. 조건에 맞게 정렬한다. 2. 정답코드 select B.REST_ID, A.REST_..
[SQL] 오프라인/온라인 판매 데이터 통합하기 https://school.programmers.co.kr/learn/courses/30/lessons/131537 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 해결방법 select 문 두개를 union all 문법을 이용해서 하나의 테이블로 합쳤다, 2. 정답코드 select DATE_FORMAT(A.SALES_DATE, "%Y-%m-%d") AS SALES_DATE, A.PRODUCT_ID, A.USER_ID, A.SALES_AMOUNT from ONLINE_SALE as A where YEAR(A.SALES_DATE) = '2022' and ..
[SQL] 3월에 태어난 여성 회원 목록 출력하기 https://school.programmers.co.kr/learn/courses/30/lessons/131120 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 해결 방법 3가지 조건을 충족해야한다. 1. 생일이 3월이다. MONTH(DATE_OF_BIRTH)=3 2. 성별이 여성이다. GENDER='W'- 전화번호가 NULL 아니다. 3. TLNO IS NOT NULLMEMBER_ID 오름차순 정렬 2. 정답코드 select MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d..
[프로그래머스] Lv.2 줄 서는 방법 https://school.programmers.co.kr/learn/courses/30/lessons/12936 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 해결방법 이 문제를 해결하는데 거의 4시간? 정도 사용한 것 같다. dfs와 permutations도 효율성 문제에서 아웃돼버렸다.. 정답을 유추하는 데에는 10분채 안걸렸지만 효율성 테스트를 어떻게 해결할 것인가에 대해서 10분을 제외한 나머지 시간을 사용했다. 핵심 포인트는 math 라이브러리에서 factorial을 사용하는 것인데,,,, 어떻게 사용할 것인가가 가장 중요하다. n이 3,..