location은 priorities의 인덱스 번호다.즉 priorities 리스트가 주어질 때 가장 높은 순서대로 프로세스가 작동할 때, priorities의 인덱스인 location이 몇 번째로 작동하는지 반환하는 문제다.문제의 제시에서 priorities는 길이가
s의 길이가 최대 1백만이기에 탐색을 위해 반복문을 2번 이상 반복하게 되면 시간초과가 된다. 1번의 탐색으로 result의 결과를 확인할 수 있어야 한다.연속으로 같은 문자가 2개 붙어 있을 때 제거를 해주는 방법으로 s를 순차적으로 반복문을 진행하면서 stack 자
1번부터 증가하는 상자가 컨테이너에서 순서대로 흘러올 때, 'order'의 번호와 같을 때 트럭에 실으면 된다.순서가 같지 않으면 임시 컨테이너에 집어넣는데, 그 컨테이너는 스택과 같이 후입선출만 가능하다.그래서 일단 임시 컨테이너에 집어넣고, 제일 마지막에 집어넣은
scikit-learn이 버전 업그레이드 되면서 군집화 모듈 KMeans를 fit()할 때 오류가 발생한다.scikit-learn을 설치하면 threadpoolctl 모듈도 함께 설치가 되는데 버전으로 인해 호환성에 문제가 생기는 것이다.threadpoolctl을 3.
set 자료구조와 라이브러리 collections에서 defaultdict 혹은 Counter를 사용하면 쉽게 해결할 수 있는 해쉬 문제다.참조 : 자주 쓰는 라이브러리defaultdict 혹은 Counter를 사용하여 크기별로 갯수를 만든다. 크기의 종류가 최소가 되
출처: 프로그래머스 - 구명보트주어진 people에서 1명 혹은 2명으로 묶어서 그 길이를 구할 수도 있지만,간단히 구명보트에 1명씩 태우는 경우를 default로 잡고 2명이 탈 수 있다면 전체 길이 default 값에서 -1씩 차감하여 구하여도 된다.그리디 문제는
BFS 최단거리 탐색 문제다.1\. 시작지점에서 출발하여 반드시 레버를 당긴 후에 탈출 지점으로 이동해야 한다. 그러므로 출발 -> 레버, 레버 -> 탈출 경로로 2번의 BFS를 시행하여 두 번의 이동 경로의 합을 구하면 된다.2\. 2번의 BFS를 시행할 때, BFS
끝말잇기 문제는 문제에서 제시하는 것을 그대로 구현할 수 있는지 묻는 구현 문제에 가깝다.해쉬의 set 자료구조가 아닌, 단순히 중복을 체크하는 것이기에 list 자료구조를 만들어서 확인해도 문제가 없지만 set 자료구조를 일단 사용했다.단어를 확인하면서 첫 글자와 마
skill_trees를 반복문으로 순회하면서 스킬트리를 하나씩 꺼내와서 skill과 비교한다.비교할 때는 deque를 사용하여 큐 자료구조를 만들어 제일 앞의 문자를 비교한다. 리스트는 순서가 있는 배열이기에 제일 앞의 것을 빼내게 되면 재정렬을 하는 연산을 하기에 상
주어진 던전들의 모든 순서들을 나열하는 경우의 수인 수열을 모두 구한 뒤, 수열을 처음부터 탐색하며 던전을 돌 수 있는 수를 세고 그 중 가장 큰 수를 반환하면 된다.던전의 순서는 임의로 입장가능하며 입장 순서에 따라서 클리어가 가능한 던전의 개수가 달라지기 때문에 모
DP를 해결할 때 크게 Botton-up 방식과 Top-down 방식이 있다.해당 문제는 Top-Down으로 해결하기에는 1 혹은 2로만 움직이기에 2000까지는 너무 깊게 내려가야 하기에 재귀를 쓰게 된다면 시간 초과에 걸릴 확률이 높다. 2칸을 기준으로 잡더라도 깊
자료구조 해쉬(딕셔너리)와 모듈 collections의 Counter을 활용하여 간단히 해결할 수 있다.Counter 참조해쉬 참조딕셔너리 자료구조를 하나 생성하여 정현이가 원하는 품목을 key로 수량을 value로 생성한다.discount 날짜는 정현이가 원하는 최소
문자를 압축할 때 문자를 1개 단위부터 문자열 전체의 반까지 압축할 수 있는 경우의 수를 모두 탐색하여 가장 짧은 문자열을 반환하면 된다.2중 반복문을 이용하여 문자길이 1부터 문자 전체길이의 반까지 바깥 반복문을 통해 문자의 길이를 정하고, 안쪽 반복문은 문자의 길이
제일 앞 인덱스를 계속 확인하면서 진행해야 하기에 자료구조 큐를 활용한다.progresses 제일 앞 인덱스의 값을 확인하면서 100 이상이 되면 숫자를 세어주고, 아니면 progresses에 speeds값을 각 인덱스에 맞춰 한 번씩 더해준다. 제일 인덱스 0의 값을
일명 '그래프' 문제라고 불린다. 주어진 문제의 제시처럼 그래프를 만든 후 '1'번 노드부터 시작해서 다음 노드들을 방문할 때 가중치의 합이 K를 넘지않는 노드의 개수를 찾는 문제다.시작 노드가 1이기 때문에 1에서 출발을 할 수 있도록 하며, 연결이 되어 있지 않을
출처: 프로그래머스 - 점프와 순간 이동점프와 순간 이동0에서 출발하여 도착지점까지 최소한의 건전지를 사용하며 순간 이동으로 도착할 수 있는지 묻는 문제다.0에서 출발하는 것을 계산하게 되면 많은 경우의 수가 생기기에, 역으로 도착지점부터 반씩(나누기 2)를 하여 순간
DP(Dynamic Programming) Knapsack(냅색) 문제다.냅색 문제는 2개의 짝을 이루는 값이 주어지는데 '무게, 가치', '시간, 가치', '넓이, 가치' 등이다. 이렇게 짝을 이룬 값이 주어질 때 이 값이 중복으로 사용할 수 있느냐 없느냐로 풀이가
pandas에서 저수 기반의 범주형 데이터를 표현할 수 있는 특수 데이터형을 말한다.Categorical 데이터로 간단히 변경할 수 있는데, 아래는 이제 Numpy 배열이 아닌 pandas.Catogorical의 인스턴스다.Categorical 객체는 codes와 ca
리샘플링은 시계열의 빈도를 변환하는 '과정'을 말한다. '댜운샘플링'은 상위 빈도의 데이터를 하위 빈도로 계산하는 것을 말하며 '업샘플링'은 그 반대 과정이다.resample은 빈도 변환과 관련된 연산을 수행하는데 groupby와 비슷하게 동작하는데 데이터를 빈도로 그
시계열을 다룰 때에는 기본적으로 현재 국제표준이며 그리니치 표준시를 계승하는 국제표준시(UTC:Coordinated Universal Time/Universal Time Coordinated)를 선택해서 사용한다.파이썬에서 시간대 정보는 전 세계 시간대 정보를 모아둔