프로그래머스 74

[Lv.3 / 프로그래머스 / SQL] 물고기 종류 별 대어 찾기

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr    풀이 종류별로 가장 큰 물고기의 길이와 그 물고기의 ID를 출력해야 한다.  물고기의 ID를 출력해야 하는 부분 때문에 단순히 집계 함수로 문제를 해결할 수 없다.따라서 물고기의 종류별로 가장 긴 실제 레코드를 서브쿼리로 구한 뒤 메인 쿼리와 비교하여 해결해야 한다.NAME을 출력해야 하는 부분은 INNER JOIN을 통해 해결할 수 있다. SELECT ID, FISH_NAME, LENGTHFROM FISH_INFO AS FIINNER JOIN FISH_NAME_INFO AS FN..

[Lv.1 / 프로그래머스 / SQL] 특정 형질을 가지는 대장균 찾기

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   풀이 비트연산자를 통해 보유 형질 조건을 판별해야 한다. 비트연산을 수행할 때, 세 번째 형질을 나타내는 비트는 100인데, 이를 십진수로 표현하면 3이 아니라 4임에 유의하자. SELECT COUNT(1) AS COUNTFROM ECOLI_DATAWHERE (GENOTYPE & 1 OR GENOTYPE & 4) AND !(GENOTYPE & 2)

[Lv.2 / 프로그래머스 / SQL] 분기별 분화된 대장균의 개체 수 구하기

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   풀이 분기별 대장균 개체의 수를 구해야 한다. CASE문과 집계 함수인 COUNT를 이용해 조건별로 분기별 대장균 개체의 수를 구할 수 있다.  SELECT CASE WHEN MONTH(DIFFERENTIATION_DATE)

[Lv.2 / 프로그래머스 / SQL] 월별 잡은 물고기 수 구하기

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   풀이 연도(year)와 일(day) 상관 없이 월별로 잡은 물고기의 수를 그룹화하여 출력해야 한다.MONTH 함수를 이용하여 월만 뽑아낸 컬럼인  MONTH 별로 그룹화한 뒤, 집계 함수 COUNT를 사용하여 물고기의 합계를 구한다. SELECT COUNT(*) AS FISH_COUNT, MONTH(TIME) AS MONTHFROM FISH_INFOGROUP BY MONTHORDER BY MONTH

[Lv.1 / 프로그래머스 / SQL] 잡은 물고기의 평균 길이 구하기

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   풀이 잡은 물고기의 평균 길이를 구해야 한다. AVG 함수로 평균 길이를 구할 수 있고, ROUND 함수를 통해 소수점의 반올림을 할 수 있다. 길이가 NULL인 물고기는 길이를 10으로 취급해야 하므로 NULL인 row를 특정 값으로 처리해주는 IFNULL 함수를 사용해야 한다.  SELECT ROUND(AVG(IFNULL(LENGTH, 10)), 2) AS AVERAGE_LENGTHFROM FISH_INFO

[Lv.3 / 프로그래머스 / SQL] 부서별 평균 연봉 조회하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) 부서의 고유한 아이디인 DEPT_ID를 GROUP BY로 묶어 평균 연봉을 조회한다. 이 때, 부서의 영문 이름을 출력해야 하므로 HR_DEPARTMENT와 JOIN 하여 이름을 구해서 같이 출력해야 한다. SELECT E.DEPT_ID, DEPT_NAME_EN, ROUND(AVG(SAL)) AS AVG_SAL FROM HR_EMPLOYEES AS E INNER JOIN HR_DEPARTMENT AS D ON E.DEPT_ID = D.DEPT_ID GROUP BY E.DEPT_ID ORDE..

[Lv.2 / 프로그래머스 / SQL] 물고기 종류 별 잡은 수 구하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) 물고기의 종류별로 개수를 출력해야 한다. FISH_TYPE 대신 FISH_NAME을 출력해야 하므로 JOIN을 통해 해결해야 한다. SELECT COUNT(*) AS FISH_COUNT, FISH_NAME FROM FISH_INFO LEFT JOIN FISH_NAME_INFO ON FISH_INFO.FISH_TYPE = FISH_NAME_INFO.FISH_TYPE GROUP BY FISH_NAME_INFO.FISH_NAME ORDER BY FISH_COUNT DESC

[Lv.1 / 프로그래머스 / SQL] 잔챙이 잡은 수 구하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) 길이가 10cm 이하인 물고기의 개수를 출력해야 한다. 10cm 이하인 것은 LENGTH가 NULL로 표기되므로 LENGTH가 NULL인 것들을 출력하면 된다. SELECT COUNT(*) AS FISH_COUNT FROM FISH_INFO WHERE LENGTH IS NULL

[Lv.3 / 프로그래머스 / 파이썬] 네트워크

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 DFS 혹은 BFS를 사용해 네트워크의 개수를 찾는 문제이다. 주어진 정보로 각 노드에 대한 간선 정보를 담은 link 배열을 생성하고 모든 정점을 순회하며 방문 체크를 한다. 모든 방문 체크를 끝내기 위해 몇 번의 bfs가 필요한지 계산하여 반환하면 된다. from collections import deque def solution(n, computers): visited = [False] * n link = [[] for _ in range(n)] ans = 0 for i in range(n): fo..

[Lv.1 / 프로그래머스 / 파이썬] 2016년

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 파이썬에서 날짜를 다루는 라이브러리인 datetime을 사용해 간단하게 해결할 수 있다. datetime 객체에 weekday() 함수를 사용해 현재 날짜의 요일을 반환받을 수 있다. 단, 인덱스 0이 월요일임에 주의하자. import datetime def solution(a, b): weekday = ["MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"] return weekday[datetime.datetime(2016, a, b).weekday()]

반응형