문제이 문제는 아주 평범한 배낭에 관한 문제이다. 한 달 후면 국가의 부름을 받게 되는 준서는 여행을 가려고 한다. 세상과의 단절을 슬퍼하며 최대한 즐기기 위한 여행이기 때문에, 가지고 다닐 배낭 또한 최대한 가치 있게 싸려고 한다. 준서가 여행에 필요하다고 생각하는 N개의 물건이 있다. 각 물건은 무게 W와 가치 V를 가지는데, 해당 물건을 배낭에 넣어서 가면 준서가 V만큼 즐길 수 있다. 아직 행군을 해본 적이 없는 준서는 최대 K만큼의 무게만을 넣을 수 있는 배낭만 들고 다닐 수 있다. 준서가 최대한 즐거운 여행을 하기 위해 배낭에 넣을 수 있는 물건들의 가치의 최댓값을 알려주자. 입력첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어..
DP란?DP란, Dynamic Programming의 약자로, 동적 계획법이라고합니다. DP가 어떤 단어의 약자이고 그것이 어떻게 불리는지에 대해서는 알겠는데, 너무 추상적이고 뭐가 동적으로 계획된다는 건지 이해가 되지 않을 수 있습니다. DP는 큰 문제를 조그만한 문제로 나누어, 답을 구하고 계산된 결과를 기록하고 재활용하며, 문제의 답을 찾아가는 방식으로 진행됩니다. 이런 구조적인 특성상 계산에서 나온 결과를 저장하기 위해서는 중간 계산 결과를 저장하기 위한 추가적인 메모리를 필요로 하게 됩니다.최근 한국에서 코딩테스트 시험을 볼 때, 시간 복잡도에 대해서는 다소 타이트하게 주어질 수 있지만, 공간 복잡도에 대해서는 상당히 널널하게 주는 편이므로, 어떤 문제를 풀어나갈 때, 다른 방법이 존재하더라도..
백엔드 개발자의 필수 역량: 어떤 것들이 필요할까?IT 업계에서 백엔드 개발자의 수요가 날로 증가하면서, 백엔드 개발자가 되기 위한 경쟁도 치열해지고 있습니다. 그렇다면 백엔드 개발자로 성장하기 위해 어떤 역량을 쌓아야 할까? 오늘은 백엔드 개발자로서 갖춰야 할 기본적인 역량 중 '자료구조', '알고리즘', 그리고 '코딩테스트'에 관하여 알아보겠습니다.자료구조: 데이터를 효율적으로 관리하는 기초데이터는 백엔드 시스템의 토대입니다. 따라서, 데이터를 효율적으로 저장하고 관리하는 방법을 아는 것은 매우 중요합니다. 자료구조는 이를 가능하게 하는 기술이며, 배열, 연결 리스트, 스택, 큐, 트리, 해시 테이블 등 다양한 형태로 존재합니다. 이들 각각의 특성을 이해하고 적절히 활용할 수 있다면, 데이터를 보다..
개요 최근 4월부터 제로베이스 부트캠프를 시작하면서, 내가 사용하는 기술들과 트러블슈팅, 기술 블로그를 거의 못한 것같다. 거의 자료구조나 알고리즘, 코딩테스트 문제 풀이에 대한 고찰들을 포스팅했었다. 여기에서 오는 현타가 너무 심해, 앞으로는 시간을 내서라도 내가 프로젝트를 진행하면서 겪었던 문제들을 어떻게 풀어나갔는지, 어떻게 오류를 알게되었는지에 대해서 포스팅을 진행하게 될 것같다. 물론 코딩테스트 내용과 자료구조, 알고리즘에 대한 글도 꾸준히 써내려갈 예정이다. 내용 우선 쓰게될 기술 블로그들의 토픽이다. 1. AWS RDS + VPC Error 최근에 터져버린 프로젝트가 있었는데, 해당 프로젝트에서 로컬 환경에서 데이터를 저장하는 것이 올바르지 못한 것같아, 배포 단계에 사용할 RDS에 대해서 ..