일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 1차원 DP
- 2차원 dp
- 99클럽
- @BeforeAll
- @BeforeEach
- @Builder
- @Entity
- @GeneratedValue
- @GenericGenerator
- @NoargsConstructor
- @Query
- @Table
- @Transactional
- Actions
- Amazon EFS
- amazon fsx
- Android Studio
- ANSI SQL
- api gateway 설계
- api gateway 필터
- ApplicationEvent
- argocd
- assertThat
- async/await
- AVG
- AWS
- aws autoscaling
- aws eks
- aws iam role
- AWS KMS
- Today
- Total
목록programmers (27)
기록
문제 조건 요약url : https://school.programmers.co.kr/learn/courses/30/lessons/42626섞는 공식:새로운 음식의 스코빌 지수 = 가장 맵지 않은 음식 + (두 번째로 맵지 않은 음식 × 2)음식의 스코빌 지수가 K 이상이 되면 종료한다.만들 수 없는 경우는 -1을 반환한다.heappop()은 빈 리스트에 대해 실행하면 IndexError가 발생하므로 주의가 필요하다.핵심 아이디어가장 작은 값을 빠르게 꺼내야 하므로 **최소 힙(min-heap)**을 사용한다.heapq는 리스트를 힙 구조로 정렬할 수 있는 표준 라이브러리이다.heapq.heapify(scoville)를 통해 입력 리스트를 최소 힙으로 변환한다.루프마다 heappop()으로 가장 작은 두 ..
문제 조건- url : https://school.programmers.co.kr/learn/courses/30/lessons/42579속한 노래가 많이 재생된 장르를 먼저 수록한다.장르 내에서 많이 재생된 노래를 먼저 수록한다.재생 횟수가 같으면 고유 번호가 낮은 노래를 먼저 수록한다.장르별로 최대 2곡까지 수록한다.예시 입력genres = ["classic", "pop", "classic", "classic", "pop"]plays = [500, 600, 150, 800, 2500]이 경우 베스트 앨범에 수록할 곡은 [4, 1, 3, 0]이 된다.풀이 전략장르별로 고유 번호를 모은다 → defaultdict(list)장르별로 총 재생 횟수를 계산한다 → defaultdict(int)장르 전체를 재생 ..
문제- url : https://school.programmers.co.kr/learn/courses/30/parts/12077얼굴동그란 안경, 검정 선글라스상의파란색 티셔츠하의청바지겉옷긴 코트 위처럼 여러 의상 종류가 있고 각 종류별로 여러 개의 아이템이 존재할 수 있다. 각 종류에서 한 가지씩만 착용 가능하며, 입거나 안 입을 수 있다. 단, 아무것도 입지 않는 경우는 제외한다.접근 방식이 문제는 조합의 수를 묻고 있지만, 단순한 조합이 아닌 종류별 선택의 경우의 수를 곱해서 구하는 방식으로 해결할 수 있다.종류가 N개일 때:(종류1 개수 + 1) × (종류2 개수 + 1) × ⋯ × (종류N 개수 + 1) - 1 여기서 +1은 해당 종류의 옷을 "입지 않는 경우"를 포함한 것이다.마지막에 -1을 하..
문제url : https://school.programmers.co.kr/learn/courses/30/lessons/42577?language=python3전화번호는 최대 1,000,000개까지 주어진다.각 전화번호의 길이는 최대 20자이다.중복 번호는 없다.접두어 관계가 있는 번호가 있으면 False, 없으면 True를 반환해야 한다.1. 해시맵 기반 접두어 검사핵심 아이디어각 전화번호를 dict에 저장하고,각 번호의 모든 접두어(자기 자신 제외)를 하나씩 잘라보며 dict에 존재하는지 확인한다.코드def solution(phone_book): _dict = {p: 1 for p in phone_book} for p in phone_book: for i in range(..
문제url : https://school.programmers.co.kr/learn/courses/30/lessons/1845?language=python3총 N마리의 폰켓몬이 있음 (항상 짝수)각 폰켓몬은 종류 번호를 가짐이 중 N/2마리만 선택 가능선택한 폰켓몬 중 서로 다른 종류의 수가 최대가 되도록 하고 싶다예시nums = [3, 1, 2, 3]# 선택할 수 있는 최대 마리 수: 4 // 2 = 2# 폰켓몬 종류 수: 3 (1, 2, 3)# 최대한 다양한 종류를 고르면 최대 2종류 선택 가능# → 정답: 2풀이 전략핵심은 다음 두 가지다:내가 고를 수 있는 폰켓몬 수는 N / 2 마리다.폰켓몬의 종류 수가 그보다 작으면 종류 수만큼만 고를 수 있다.→ 정리하면, 최대 선택 가능한 종류 수는 아래 ..
문제url : https://school.programmers.co.kr/learn/courses/30/lessons/42576참가자 수: 1명 이상 100,000명 이하이름: 알파벳 소문자, 길이 1~20자완주자 수: 참가자 수 - 1동명이인 존재 가능예시participant = ["leo", "kiki", "eden"]completion = ["eden", "kiki"]# 결과: "leo"participant = ["mislav", "stanko", "mislav", "ana"]completion = ["stanko", "ana", "mislav"]# 결과: "mislav"핵심 아이디어이름이 중복될 수 있다. 단순 정렬이나 반복문만으로는 정확히 잡아내기 어렵다.각 이름이 몇 번 나왔는지를 세야 한다...
- url : https://school.programmers.co.kr/learn/courses/30/lessons/42842?language=python3 Leo는 갈색 테두리와 노란색 내부로 이루어진 카펫을 보았다.갈색 격자 수 brown과 노란색 격자 수 yellow가 주어졌을 때, 전체 카펫의 가로와 세로 크기를 구하는 문제이다.조건 정리전체 격자 수 = brown + yellow내부는 (가로 - 2) * (세로 - 2) = yellow테두리는 2a + 2b + 4 = brown을 만족해야 한다.이때 a, b는 내부 사각형의 가로와 세로이다.즉, 아래 두 조건을 만족하는 a, b를 찾으면 된다.a + b = (brown - 4) // 2a * b = yellow전체 가로, 세로는 a + 2, ..
문제 설명url : https://school.programmers.co.kr/learn/courses/30/lessons/42840?language=python31번부터 N번까지 총 answers 배열만큼 문제가 주어진다.세 명의 수포자가 각자 고정된 패턴으로 문제를 찍고 있으며, 정답과 비교했을 때 가장 많은 문제를 맞힌 수포자의 번호를 오름차순으로 리턴해야 한다.수포자의 답안 패턴1번1, 2, 3, 4, 5 반복2번2, 1, 2, 3, 2, 4, 2, 5 반복3번3, 3, 1, 1, 2, 2, 4, 4, 5, 5 반복해결 전략모든 수포자에 대해, answers 리스트를 순회하며 정답을 한 문제씩 비교해본다.수포자의 패턴은 주기적으로 반복되므로, **i % len(패턴)**을 통해 현재 수포자가 찍은..