목록전체 글 (165)
No Limitation
https://programmers.co.kr/learn/courses/30/lessons/42626?language=python3 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr heapq 연습 문제로 적합한듯 import heapq as hp def solution(scoville, K): answer = 0 # heap화 시킴 hp.heapify(scoville) ## 최소 힙으로 사용 ## K 이상으로 만들 수 있을 때 while(scoville[0] < K and len(scoville)..
참고 강의 https://www.youtube.com/watch?v=VHky3d_qZ_E 고려대학교 산업경영공학부 강필성 교수님 원문에 대한 자세한 분석은 다음 강의를 참고하자 [추후에 참고] https://www.youtube.com/watch?v=VkaZXGknN3g 고려대학교 산업경영공학부 석사과정 윤훈상 Decision Tree 기반의 알고리즘이 발전된 순서를 잘 정리해 놓은 도식표를 참고해보자 ( 금일 정리할 XGB까지 어떠한 흐름으로 발전 했는지 ) 각각의 설명을 다시 깊게 파헤쳐보자 Decision Tree : A graphical representation of possible solutions to a decision based on certain conditions Bagging : B..
참고 온라인 강의 영상 고려대학교 산업경영공학부 강필성 교수님 https://www.youtube.com/watch?v=4C8SUZJPlMY Boosting 시리즈 (Ada-XG-LightGBM-Cat) 중 하나인 LightGBM부터 다루어보도록 하겠습니다! LightGBM이 개발된 배경 : 전통적인 GBM은 DT 기반의 알고리즘 특성상, 모든 변수들에 대해, 모든 객체를 scan하여 동작을 해서 information gain을 측정하게 된다. ( 여기서 information gain은 DT에서 분류 기준을 정한 뒤 엔트로피가 주는 정도, 즉 pruning을 통해 얼마나 잘 분류가 되는 지를 측정하는 지표 ) 위 두 문제를 대응하기 위해 LightGBM은 어떠한 방법을 적용할까? [1] 모든 객체를 sc..
https://programmers.co.kr/learn/courses/30/lessons/42586?language=pyth 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr [93, 30, 55] → progresses [1, 30, 5] → speeds 같이 구성이 되어 있을 때 각 기능마다 일이 처리될 수 있는 시간은 다음과 같이 분포한다 [7, 3, 9] 즉, 93% 일이 처리 된 기능의 경우 한번에 1만큼 처리를 하므로 총 7 30% 일이 처리 된 기능의 경우 한번에 30만큼 처리를 하므로 총..
https://www.acmicpc.net/problem/13335 13335번: 트럭 입력 데이터는 표준입력을 사용한다. 입력은 두 줄로 이루어진다. 입력의 첫 번째 줄에는 세 개의 정수 n (1 ≤ n ≤ 1,000) , w (1 ≤ w ≤ 100) and L (10 ≤ L ≤ 1,000)이 주어지는데, n은 다리를 건너는 트 www.acmicpc.net 본 문제는 특별한 개념보다는 문제에 해당하는 조건을 잘 잡아 구현을 하는 문제다. 즉 이런 식으로 트럭이 움직이는 시뮬레이션을 구현해주는 것이다. 단, 최소가 걸리므로 하중이 견딜 수 있는 한에서는 많은 트럭이 다리를 동시에 건너게끔 해주는 조건을 추가해주어야 한다. n, w, L = [int(x) for x in input().split()] tr..
https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 우선 문제의 내용을 그대로 훝어보면 다음과 같습니다 4개의 문서에 대한 중요도가 다음과 같이 있을 때 다음과 같이 구성된다. 현재 바라보고 있는 0번째 문서는 중요도가 2, 하지만 뒤에 3이라는 중요도가 더 큰 문서가 있으므로 맨 뒤로 옮겨줍니다 그 다음으로 문서를 바라봅니다 마찬가지로 중요도가 높지 않으므로 맨 뒤로 옮겨줍니다 이 중 가장 중요도가 큰 녀석이 남으..
https://programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 본 문제는 각 price 정보마다 해당 price가 언제 감소하는 지까지의 기간을 초 단위로 count하여 리스트에 저장하는 문제 굉장히 효율성을 고려하지 않을 때 코드는 다음과 같다. 물론 해당 코드도 비교적 쉽게 통과가 되었다. 최악의 경우 O(n^2) 정도의 알고리즘이 된다. 하지만 효율성 부분이 115ms 정도가 ..
https://programmers.co.kr/learn/courses/30/lessons/42747 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr 처음에 생각했던 포인트는 어떠한 조건을 만족하는 것 중에서 가장 큰 값을 찾는 문제이고 이를 가장 빠르게 처리할 수 있는 방법론은 바로 binary search라고 생각을 했습니다 문제 예시의 3 0 6 1 5의 예시를 보면 우선 첫 번째로 정렬을 우선 해 준 다음 → 0 1 3 5 6 (nlogn) 저 중에서 Lower boun..
https://programmers.co.kr/learn/courses/30/lessons/42746?language=python3 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 이 문제는 '임의의 정렬 기준을 어떻게 적용할 수 있을까'를 고민해보는 것이 중요하다 그 부분은 바로 _functool의 cmp_to_key라는 녀석이 있다는 것이 핵심이다...!! https://velog.io/@sparkbosing/python-%EB%82%B4-%..
https://programmers.co.kr/learn/courses/30/lessons/42748?language=python3 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 가볍게 풀어본 구현 연습 def solution(array, commands): answer = []; answer = [sorted(array[com[0]-1:com[1]])[com[2]-1] for com in commands ] return answer Time complexity commands element 갯수 → n for 반복문 → O(n) 축약된 array의 길이 → m sorted..