본문 바로가기

전체 글151

[백준] 1182 부분수열의 합 c++ 문제 링크 https://www.acmicpc.net/problem/1182 KEY 부분 수열은 자기 자신을 넣거나, 빼어 만드는 수열로, 2^n가지를 만들 수 있다. 따라서 이 문제 역시 자기 자신을 넣고 DFS를 할 것인지, 빼고 DFS를 할 것인지를 모두 고려하면 된다. 주의사항은 가령 -1 1 -3 3 수열에 목표값이 0이라고 할 때, 0이 되는 값을 찾았다고 해서 리턴을 하게 되면 (-1,1),(-3,3)만을 찾은 후 리턴하여 (-1,1,-3,3)을 찾지 못하게 된다. 따라서 idx가 n이 될때 리턴하도록 종료조건을 만든다. Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #include #inc.. 2023. 3. 7.
[백준] 14888 연산자 끼워넣기 c++ 문제 링크 https://www.acmicpc.net/problem/14888 Key +,-,*,/ 4가지의 연산기호를 인자로 받는 DFS함수를 만든다. 완전탐색을 하다가 카운트가 n이 되면 최대값과 최솟값을 구해주면 된다. 이 유형의 문제들은 보통 이런식으로 모든 연산에 대한 DFS를 탐색하는 식으로 이루어진다. Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 #include #include #include #include #include using namespace std; const int MAX = 12; int n; .. 2023. 3. 6.
[백준] N과M(1)~(4)풀이 c++ 1. N과M (1) 문제 링크 : https://www.acmicpc.net/problem/15649 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. * 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 KEY 1~N의 수에 대해서 방문하지 않은 노드를 백트래킹을 활용하여 탐색하는 문제이다. 1~N까지의 수는 모두 증가순이므로 자동으로 사전 순으로 출력되게 된다. Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 #include #include #include #include #include usi.. 2023. 3. 4.
트랜잭션 스크립트 패턴 > 도메인 모델 패턴으로 변환해보기 기존에 구현했던 쇼핑몰은 서비스 계층에서 대부분의 비즈니스 로직을 처리하게 만들었다. 이를 트랜잭션 스크립트 패턴이라고 하는데, 사실 쇼핑몰을 구성하는 엔티티에는 엔티티 자체를 설명해주는 속성값만 명시해놨을 뿐 그 어떤 생성자나 메서드를 적극적으로 활용하지 못했다. 사실 서비스 계층에서 처리하면 아무런 문제가 없지만, 서비스 로직을 재사용하기엔 코드의 복잡성이 크고, 가독성이 좋지 못하다는 느낌을 받았다. 그러다 김영한 강사님의 [JPA활용] 강의를 수강했고, 엔티티가 비즈니스 로직을 갖고 객체 지향의 특성을 적극 활용하는 도메인 모델 패턴에 대해서 알게 되었다. 도메인 모델을 사용하는 모습을 보고 객체 지향에 기반하여 추후에 재사용, 확장성, 유지보수가 편리할 것 같다는 생각으로,, 쇼핑몰 프로젝트를 .. 2023. 3. 3.
[백준] 2583 영역 구하기 c++ 문제 링크 https://www.acmicpc.net/problem/2583 KEY 입력형식을 적절하게 바꾸어서 색칠된 부분을 표현하는 것이 중요했다. 나같은 경우는 좌표형식을 배열인덱스로 갖고 오고자 x좌표와 y좌표를 뒤집었다.(모양은 뒤집어지지만 넓이는 같다) ex) 테스트케이스에서 예시를 들어보면, 좌표값 (4,0), (6 2)를 뒤집어 (0,4),(2,6)를 만들고, 이는 배열 arr[0][4]에서 arr[1][5]까지 색칠되었다고 표현할 수 있다. Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 .. 2023. 3. 2.
[백준] 11725 트리의 부모 찾기 c++ 문제 링크 https://www.acmicpc.net/problem/11725 처음에는 DFS로 접근하지 않고 입력받을 때 조건에 따라 2차원 배열에 push_back하는 방법으로 풀었다. 2개의 테스트케이스를 통과했지만 제출하면 런타임오류(Out of Bounds)가 뜬다. 아무리봐도 배열 index에 문제가 없어보이는데.. 다시 찾아봐야겠다.. 오답 Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 #include #include #include #include #include using namespace std; int n; vector .. 2023. 3. 2.