프로그래머스 74

[Lv.3 / 프로그래머스 / SQL] 대장균의 크기에 따라 분류하기 1

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 각 구간 조건에 따라 Case 문으로 분류하여 SIZE를 달리 표현할 수 있다. SELECT ID, CASE WHEN SIZE_OF_COLONY > 1000 THEN "HIGH" WHEN SIZE_OF_COLONY > 100 THEN "MEDIUM" ELSE "LOW" END AS SIZE FROM ECOLI_DATA ORDER BY ID

[Lv.3 / 프로그래머스 / SQL] 대장균들의 자식의 수 구하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 PARENT_ID가 자신의 ID와 일치하는 행의 개수를 세 CHILD_COUNT 컬럼과 함께 출력해야 한다. 자식이 없어서 Null로 나타난 경우, IFNULL 구문 등을 사용하여 0으로 대체하여 출력해야 한다. SELECT ID, IFNULL( ( SELECT COUNT(*) FROM ECOLI_DATA GROUP BY PARENT_ID HAVING PARENT_ID = ID ), 0 ) AS CHILD_COUNT FROM ECOLI_DATA ORDER BY ID

[Lv.1 / 프로그래머스 / 파이썬] 가장 많이 받은 선물 (2024 KAKAO WINTER INTERNSHIP)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 딕셔너리를 이용하여 주고받은 선물의 히스토리를 기록한다. 나중에 선물 지수를 계산할 때 필요하므로 자신이 선물을 몇 개 받았는지 기록하는 received 딕셔너리도 함께 기록해준다. 이후 친구 목록을 순회하며 두 사람의 선물 기록 및 선물 지수를 바탕으로 선물을 받을 개수를 계산하고 반환한다. def solution(friends, gifts): # 선물 기록을 저장할 딕셔너리 생성 history = dict() # 2depth, a = {b: 1}; a가 b에게 1개 줌 received = dict()..

[Lv.2 / 프로그래머스 / SQL] 업그레이드 된 아이템 구하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 a 아이템의 parent_item 이 null이 아닌 b 인 경우, b의 Rarity가 RARE인 것을 출력하면 된다. 서브쿼리를 활용하여 해결했다. SELECT INFO.ITEM_ID, INFO.ITEM_NAME, INFO.RARITY FROM ITEM_INFO AS INFO, ITEM_TREE AS TREE WHERE INFO.ITEM_ID = TREE.ITEM_ID AND (SELECT DISTINCT RARITY FROM ITEM_INFO AS INFO2, ITEM_TREE AS TREE2 WHE..

[Lv.2 / 프로그래머스 / SQL] ROOT 아이템 구하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 PARENT_ITEM_ID 가 Null인 항목을 출력해야 한다. IS NULL 구문을 통해 현재 필드의 null 여부를 반환받을 수 있다. SELECT INFO.ITEM_ID, INFO.ITEM_NAME FROM ITEM_INFO AS INFO, ITEM_TREE AS TREE WHERE INFO.ITEM_ID = TREE.ITEM_ID AND TREE.PARENT_ITEM_ID IS NULL

[Lv.2 / 프로그래머스 / SQL] 조건에 맞는 아이템들의 가격의 총합 구하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 희귀도가 LEGEND인 아이템의 PRICE 합을 구해야 한다. SELECT SUM(PRICE) AS TOTAL_PRICE FROM ITEM_INFO WHERE RARITY = 'LEGEND'

[Lv.4 / 프로그래머스 / SQL] FrontEnd 개발자 찾기

풀이 SKILLCODES에 있는 스킬 중 Front End 스킬을 가진 개발자를 출력해야 한다. 이전 문제에서 SKILLCODES에 있는 CODE를 적절하게 서브쿼리로 구해, DEVELOPERS에 있는 SKILL_CODE 를 & 비트 연산을 사용해 비교하여 정답을 구했다. 마찬가지로, 이번에는 Front End 카테고리에 속한 스킬들을 모두 추출하여 비교하면 되므로 Front End인 것만 추출하여 CODE를 더해 비트연산을 하면 된다. SELECT DISTINCT ID, EMAIL, FIRST_NAME, LAST_NAME FROM DEVELOPERS AS D WHERE D.SKILL_CODE & ( SELECT SUM(`CODE`) FROM SKILLCODES WHERE CATEGORY = 'Front..

[Lv.2 / 프로그래머스 / SQL] 조건에 맞는 개발자 찾기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 DEVELOPERS 테이블에 있는 개발자의 SKILL_CODE가 SKILLCODES 테이블의 C#, Python 코드 중 하나를 포함하는 ROW를 출력해야 한다. 비트연산자를 활용하여 개발자의 SKILL_CODE에 C# 혹은 Python의 CODE가 포함되는지 판별하도록 하자. SELECT DISTINCT ID, EMAIL, FIRST_NAME, LAST_NAME FROM DEVELOPERS AS D WHERE D.SKILL_CODE & (SELECT `CODE` FROM SKILLCODES WHERE ..

[Lv.1 / 프로그래머스 / 파이썬] 달리기 경주

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 최소한의 비용으로 players 의 위치를 탐색해 순위를 바꿔야 하는 문제이다. 단순히 callings 에 있는 이름들을 players 리스트를 순회하며 찾는다면 50,000 * 1,000,000 만큼의 비용이 발생할 것이다. 따라서 callings 에 있는 이름을 playres 에서 O(1) 만에 탐색할 수 있는 딕셔너리와 같은 HashMap 을 사용해야 한다. def solution(players, callings): rank = dict() for i in range(len(players)): ra..

[Lv.3 / 프로그래머스 / 파이썬] 인사고과

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 임의의 사원보다 두 점수가 모두 낮은 경우가 있는지의 여부를 빠르게 체크해야 하는 문제이다. 그러기 위해서 정렬을 사용할 수 있는데, 첫 번째 점수를 내림차순, 두 번째 점수를 오름차순으로 정렬하여 해결할 수 있다. 첫 번째 점수를 내림차순 정렬할 경우 우선 최상단에 있는 사원은 첫 번째 점수가 1등이기 때문에 두 점수가 모두 낮을 일은 없게 된다. 그리고 다음 사원을 순회하며 이전 사원보다 두 점수가 모두 낮은 경우가 있는지 체크한다. 만약 두 점수가 모두 낮은 경우가 있다면 목록에서 제외하며, 이전에..

반응형