전체 글
-
[Level 2] 피로도(permutations)[프로그래머스] 코딩테스트 고득점 Kit/완전탐색 2023. 5. 1. 00:54
from itertools import permutations def solution(k, dungeons): answer = 0 for p in permutations(dungeons, len(dungeons)): temp = k count = 0 for need, spend in p: if temp >= need: temp -= spend count += 1 answer = max(answer, count) return answer permutations 통해 모든 순서 경우의 수 구하고 하나씩 실행해본 뒤 최대 던전 수 return하는 방식
-
[Level 2] 카펫[프로그래머스] 코딩테스트 고득점 Kit/완전탐색 2023. 5. 1. 00:09
def solution(brown, yellow): answer = [] a = [] for i in range(1, int(yellow ** 0.5) + 1): if yellow % i == 0: a.append([yellow //i, i]) for element in a: if 2*(element[0] + element[1]) + 4 == brown: answer.append(element[0] + 2) answer.append(element[1] + 2) return answer 문제를 풀기 위한 아이디어: yellow와 brown의 관계에 대해 생각해보면 간단하게 해결할 수 있음 yellow 격자가 x * y 형태로 놓여 있다면 brown = 2x + 2y + 4의 관계식을 가짐. yellow 격..
-
[Level 2] 소수 찾기(permutations)[프로그래머스] 코딩테스트 고득점 Kit/완전탐색 2023. 4. 30. 23:46
from itertools import permutations def solution(numbers): answer = [] nums = [n for n in numbers] per = [] for i in range(1, len(numbers)+1): per += list(permutations(nums, i)) new_nums = [int(''.join(p)) for p in per] for n in new_nums: if n < 2: continue check = True for i in range(2, int(n**0.5) + 1): if n % i == 0: check = False break if check: answer.append(n) return len(set(answer)) permut..
-
[Level 1] 모의고사(enumerate)[프로그래머스] 코딩테스트 고득점 Kit/완전탐색 2023. 4. 30. 23:12
def solution(answers): supo_1 = [1, 2, 3, 4, 5] supo_2 = [2, 1, 2, 3, 2, 4, 2, 5] supo_3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5] supo_count = [0, 0, 0] for i in range(len(answers)): if answers[i] == supo_1[i % 5]: supo_count[0] += 1 if answers[i] == supo_2[i % 8]: supo_count[1] += 1 if answers[i] == supo_3[i % 10]: supo_count[2] += 1 k = max(supo_count) answer = [] if supo_count[0] == k: answer.append(..
-
[Level 1] 최소직사각형[프로그래머스] 코딩테스트 고득점 Kit/완전탐색 2023. 4. 30. 22:43
def solution(sizes): big = [] small = [] for i in sizes: if i[0] > i[1]: big.append(i[0]) small.append(i[1]) else: big.append(i[1]) small.append(i[0]) answer = max(big) * max(small) return answer 명함 눕혀서 수납 가능 → 명함의 가로 길이, 세로 길이가 주어졌을 때 둘 중 더 큰 값과 작은 값으로 분류 큰 값들 중 max, 작은 값들 중 max 구해서 곱하기 대박 충격 위 내용을 두 줄로도 코딩 가능... def solution(sizes): return max(max(x) for x in sizes) * max(min(x) for x in sizes)
-
[Level 1] 조건에 맞는 도서 리스트 출력하기(DATE_FORMAT)[프로그래머스] SQL 고득점 Kit/SELECT 2023. 4. 25. 09:50
[문제] BOOK 테이블에서 2021년에 출판된 '인문' 카테고리에 속하는 도서 리스트를 찾아서 도서 ID(BOOK_ID), 출판일 (PUBLISHED_DATE)을 출력하는 SQL문을 작성해주세요. 결과는 출판일을 기준으로 오름차순 정렬해주세요. SELECT BOOK_ID, DATE_FORMAT(PUBLISHED_DATE,'%Y-%m-%d') AS PUBLISHED_DATE FROM BOOK WHERE YEAR(PUBLISHED_DATE) = 2021 AND CATEGORY = '인문' ORDER BY PUBLISHED_DATE ASC DATE_FORMAT(날짜, 형식): 날짜를 지정한 형식으로 출력 %Y 4자리 년도 %m 숫자 월 ( 두자리 ) %y 2자리 년도 %c 숫자 월(한자리는 한자리) %M 긴..
-
[Level 1] 평균 일일 대여 요금 구하기(ROUND)[프로그래머스] SQL 고득점 Kit/SELECT 2023. 4. 25. 09:35
[문제] CAR_RENTAL_COMPANY_CAR 테이블에서 자동차 종류가 'SUV'인 자동차들의 평균 일일 대여 요금을 출력하는 SQL문을 작성해주세요. 이때 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림하고, 컬럼명은 AVERAGE_FEE 로 지정해주세요. SELECT ROUND(AVG(DAILY_FEE), 0) AS AVERAGE_FEE FROM CAR_RENTAL_COMPANY_CAR GROUP BY CAR_TYPE HAVING CAR_TYPE = 'SUV' 반올림: ROUND(값, 자릿수)
-
[Level 1] 12세 이하인 여자 환자 목록 출력하기(IFNULL)[프로그래머스] SQL 고득점 Kit/SELECT 2023. 4. 25. 09:03
[문제] PATIENT 테이블에서 12세 이하인 여자환자의 환자이름, 환자번호, 성별코드, 나이, 전화번호를 조회하는 SQL문을 작성해주세요. 이때 전화번호가 없는 경우, 'NONE'으로 출력시켜 주시고 결과는 나이를 기준으로 내림차순 정렬하고, 나이 같다면 환자이름을 기준으로 오름차순 정렬해주세요. SELECT PT_NAME, PT_NO, GEND_CD, AGE, IFNULL(TLNO,'NONE') AS TLNO FROM PATIENT WHERE AGE