이전 포스팅에서는 HTTP 완벽 가이드 스터디 회고를 남겼었는데 스터디를 통해 꾸준하게 책을 읽고 매주 모여서 이야기를 하며 도움이 많이 되어팀원들과 계속해서 스터디를 진행하게 되었습니다. 이번에는 "객체지향"스러운 코드를 짜보자! 라는 목표로 스터디를 진행하였습니다!매번 객체지향 객체지향~ 중요성을 강조해왔지만막상 객체지향적으로 코드를 짜고 있는지는 의문이었습니다🤔 기능 개발하느라 급급했던 ;; 책을 완독하고, 객체지향적으로 개발하고 있을 모습을 기대하며 스터디에 참여했습니다!스터디 책, 진행방법과 함께 회고를 공유해보고자 합니다👣 책 선정📖오브젝트 객체지향 책하면 떠오르는 책이 "객체지향의 사실과 오해" 그리고 "오브젝트" 이렇게 두개가 후보였습니다.객사오를 이미 완독한 팀원들이 있어, "오브젝..
프로그래머스 데브코스 과정에 참여하며 도서 지원을 받아 스터디에 참여할 수 있는 좋은 기회가 생겨 같은 팀원들과 스터디를 진행하게 되었습니다. 백엔드 개발자가 되기 위해 필요한 지식 중 하나인 HTTP 지식을 습득을 목표로 스터디를 진행하였습니다! 네트워크 전공 수업을 수강하긴 했지만 시험에 급급해서 개념들만 달달 외웠던터라 사실상 머리에 남은게 별로 없었습니다.. 그래도 이제 백엔드 개발 공부를 하고 있는데 다시 네트워크를 공부해보면 좀 다르지 않을까! 기대하며 스터디에 참여하였습니다!! 어떤 책을 선정했고, 어떠한 방식으로 스터디를 진행하였는지 회고를 공유해보고자 합니다🎶 책 선정📖 HTTP 완벽 가이드 네트워크 책하면 "컴퓨터 네트워크 하향식 접근"이 떠올랐는데 범위가 광범위하고 마냥 쉽게 읽히는 ..
카카오 Lv3 문제라 쉽지 않을거라고 예상했지만 역시나 어려웠다 🤯 처음 푼 방식의 경우, 주어진 테스트 케이스 두개는 통과했지만 채점 시에 맞는 테스트 케이스가 단 하나도 없었다ㅎ 설치와 삭제하는 케이스 모두 일일이 점검하면서 풀었지만, 아마 내가 생각하지 못한 케이스들이 많은 것 같다. #include #include #include using namespace std; struct FrameInfo{ int x, y, a; FrameInfo(int x, int y, int a){ this->x=x; this->y=y; this->a=a; } }; int compare(FrameInfo f1, FrameInfo f2){ if(f1.x!=f2.x){ return f1.x
문제 원형으로 이루어진 마을의 집에는 돈이 있다. 인접한 두 집을 털면 경보가 울린다. 이 때, 도둑이 훔칠 수 있는 돈의 최댓값을 구한다. 접근 규칙을 한번에 찾기 힘든 문제라 배열의 길이를 늘리면서 생각해보았다. [1, 2] 집이 2개라면 당연히 돈이 더 많은 2를 선택 [1, 2, 3] 집이 3개라면 당연히 3 선택 [1, 2, 3, 4] 2와 4 선택 [1, 10, 20, 4, 40] 20과 40 선택 그렇다면 점화식은 어떻게 세워야 할까??? [1, 10, 20, 4, 40]을 자세히 살펴보면 최대한 큰 수를 고를 수 있는 모든 경우를 알아보기 위해, 각 위치에서 최대한 큰 값을 고를 수 있는 경우를 알아야 한다. 앞에서부터 각 위치에서 가장 큰 경우를 따져보자. 1: 가장 큰 경우는 당연히 자..
문제 집에서 학교까지 물이 잠긴 지역을 피해 가는 최단경로의 개수를 구한다. 접근 dp 배열을 통해 각 위치까지 가는데 드는 최단 경로의 개수를 저장한다. 모두 0으로 초기화한다. 먼저 집이 있는 행과 열은 해당 위치까지 가는 최단 경로가 직진하는 경우 단 1개 뿐이므로 1로 설정한다. 이때 주의할점은 집이 있는 행과 열에 웅덩이가 있는 경우는 해당 웅덩이 다음부터는 1로 설정을 멈추어야 한다!(웅덩이가 있으면 직진을 할 수 없으므로!!!) -> 이 부분을 고려안해서 맨 처음에 틀렸었다😕 나머지 위치에 대해서는 왼쪽과 위쪽의 최단 경로의 개수 값을 더하여 저장한다. 이 과정을 반복하면 학교가 있는 위치의 dp 값이 집에서 학교까지 물이 잠긴 지역을 피해 가는 최단 경로의 개수가 된다. 성공 코드(내 코드..
문제 삼각형의 꼭대기에서 바닥까지 대각선 방향/한 칸 오른쪽/한 칸 왼쪽으로 이동하며 거쳐간 숫자의 합이 가장 큰 경우를 찾아 해당 합을 반환한다. 접근 dp 배열을 통해 삼각형의 위에서 2번째 층부터 탐색하며 바로 위층에서 현재 위치로 올 수 있는 두 경로 중 숫자가 더 큰 것을 선택하여 현재 위치의 숫자와 합하여 저장한다. 이를 맨 아래층까지 반복하면 맨 아래층에서 가장 큰 값이 삼각형의 꼭대기에서 바닥까지 거쳐간 숫자의 합이 가장 큰 경우에 해당된다. 아래 예를 통해 직접 구해보자. 해당 예시의 경우 30을 반환하게 된다. 성공 코드(내 코드) #include #include #include using namespace std; int solution(vector triangle) { int ans..