Algorithm/프로그래머스 41

[세무민의 코딩일기] 프로그래머스 : 우유와 요거트가 담긴 장바구니 문제 풀이

오늘 포스팅 할 내용은 Summer/Winter Coding(2019) 문제에 나온 우유와 요거트가 담긴 장바구니 문제를 풀어봤습니다. 1. 문제 설명 2. 문제 및 예시 3. 문제 풀이 이번 문제는 위의 내용처럼 우유와 요거트 2개를 모두 가지고 있는 CART_ID를 구하면 됩니다. 그렇기 때문에 조건식에 우유와 요거트가 각각 존재하는지 구분하여 검색해주면 됩니다. ## 방법 1 SELECT DISTINCT CART_ID FROM CART_PRODUCTS WHERE NAME = 'Milk' AND CART_ID IN (SELECT DISTINCT CART_ID FROM CART_PRODUCTS WHERE NAME = 'Yogurt') ## 방법 2 SELECT DISTINCT milk_tb.CART_I..

[세무민의 코딩일기] 프로그래머스 : 헤비 유저가 소유한 장소 문제 풀이

오늘 포스팅 할 내용은 2021년도 Dev-Matching: 웹 백앤드 개발자 문제에 나온 헤비 유저가 소유한 장소 문제를 풀어봤습니다. 1. 문제 설명 2. 문제 및 예시 3. 문제 풀이 이번 문제는 말 그대로 HOST_ID가 2개 이상인 경우를 헤비 유저고 부른다. 따라서 HOST_ID가 1개 이상인 경우를 조회하면 된다. SELECT ID, NAME, HOST_ID FROM PLACES WHERE HOST_ID IN ( SELECT HOST_ID FROM PLACES GROUP BY HOST_ID HAVING COUNT(1) > 1 ); 위의 코드처럼 작성하여 1개 이상의 HOST_ID를 가진 값을 출력해줬다. 4. 결과 자세한 코드는 아래의 github에 업로드해놨습니다! GitHub - sg-m..

프로그래머스 실패율(2019 KAKAO BLIND RECRUITMENT) 문제 풀이

이번에 풀어볼 알고리즘 문제는 실패율 문제 풀이입니다. 1. 문제 설명 2. 제한 사항 및 입출력 3. 문제 풀이 이번 문제는 스테이지 별로 구분할 필요가 있다. 예를 들어서 N은 5, Stage는 [2, 1, 2, 6, 2, 4, 3, 3]을 그대로 풀이해보자. 스테이지의 개수는 5, 즉 Stage가 가질 수 있는 값은 최대 5이며 그 이상은 제외하면 된다. Stage를 나눠보면 2는 3명, 1은 1명, 3은 2명, 4는 1명 그리고 6은 스테이지 개수에 없기 때문에 제외한다. 1스테이지부터 N스테이지까지 수를 아래의 표로 볼 수 있다. N : 1 1 / 8 N : 2 3 / 7 N : 3 2 / 4 N : 4 1 / 2 N : 5 0 / 1 stage1의 경우 1개가 존재하기 때문에 전체 stage(..

[세무민의 코딩일기] 위클리 챌린지 8주차 최소직사각형 문제 풀이

이번에 풀어본 문제는 위클리 챌린지 8주차 최소직사각형 문제입니다. 사실 이 문제는 어렵지 않고 쉬운데 커피숍에서 친구 기달리는 시간에 풀어봤습니다. 1. 문제 설명 2. 제한 사항 및 입출력 3. 문제풀이 이번 문제는 카드의 가로와 세로중 가장 큰 값을 구해주면 됩니다. 가로와 세로중 가장 큰 값이라고 하면 해당 값을 정렬해서 가장 큰 값 2개를 곱해주면 끝입니다. 그렇지만 가장 중요하게 봐야 하는 포인트는 카드를 눕힐 때 세로와 가로를 바꿔서 눕힐 수 있다는 점 그 말은 즉 가로에는 가장 큰값들 세로에는 가장 작은값들을 넣은 뒤 정렬해서 그 중에 큰 값을 가져오면 됩니다. 예시 1번을 보면 원래는 80과 70으로 5600이 가장 크지만 (30, 70)을 세로로 눕혀서 80과 다음으로 큰 50으로 40..

[세무민의 코딩일기] 로또의 최고 순위와 최저 순위 문제 풀이

[세무민의 코딩일기] 로또의 최고 순위와 최저 순위 문제 풀이 이번에 풀어본 문제는 2021 Dev-matching : 웹 백앤드 개발 관련하여 출제된 문제이다. 1. 문제 설명 2. 제한사항 및 예시 3. 문제 풀이 방법 이번 문제는 문제 이해만 잘하면 쉽게 풀수 있는 문제입니다. 말 그대로 0을 제외하고 같은 값이 존재하는지 찾아본 뒤에 0값만큼 최고순위에 증가시킨 뒤 순위를 매기면 됩니다. 4. 코드 풀이 def RankCheck(result): return {6:1, 5:2, 4:3, 3:4, 2:5, 1:6, 0:6}.get(result, "rank") def solution(lottos, win_nums): result = [] maxResult = 0 minResult = 0 zeroChec..