본문 바로가기

dp

코딩테스트: 연속 펄스 부분 수열의 합 (Lv.3)을 풀어보자 https://school.programmers.co.kr/learn/courses/30/lessons/161988 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제는 위의 출처로 들어가 보시면 되겠다.. 원래 이 문제를 푼 지는 시간이 좀 지났지만,이를 어떻게 해설을 해야 할까 고민을 했었다. 푸는 것도 어렵지만, 남이 이해할 수 있도록 해설하는 것 또한 어렵기 때문이고,머리를 또 굴려야 한다는 일종의 귀차니즘 때문인지, 계속 미루게 되었다.    아무튼, 문제를 차근 차근 한 줄 씩 읽어보며 해석을 해 보자.  어떤 수열의 연속 부분 수열에 같은 길이의 .. 더보기
DP(Dynamic Programing: 동적 계획법)에 대해 이해해보자 코딩테스트 문제를 풀다 보면 꼭 걸리는 문제가 여러 개가 있다..각자 고충이 있겠지만, 그 고충 중에는 "시간복잡도"가 있는 것은 꼭 있다.ㅠ 분명 코드를 알맞게 작성했지만, 소화해야할 데이터의 양,그러니까 배열의 길이 등이 몇 십만 단위로 기하급수적으로 커지게 된다면, 반드시 제한 시간 초과와 같은 실패를 직면하게 된다. 이전 글에서 index를 통해 테이블에서 원하는 레코드를 탐색할 때,시간복잡도를 줄여준다는 내용을 적었다시피...방대한 데이터를 다룰 때는 시간복잡도를 감소시키는 것은 굉장히 중요하다.  Dynamic Programing도 이런 시간 복잡도를 줄여주는 알고리즘 기법이다동적 계획법은 하나의 큰 문제를 여러 개의 작은 문제로 나눈 다음,작은 문제들을 해결해 결과를 저장하여, 결과로 큰 문.. 더보기