본문 바로가기

전체 글270

builder()패턴 빌더패턴을 살펴 보았을때까지는 싱글톤 패턴에 대해서만 자세히 알고 다른 디자인패턴에 대해서는 이름만 알고있었습니다... 오늘은 builder()패턴에 대해서 핵심 위주로 적어볼려고합니다.. 스프링을 사용할때 @builder를하면 . . . 하면서 맴버 속성값을 적용할 수 있습니다.. 여기서 ? 그럼 생성자를 하는거랑 무슨차이지? 제일 봤을때 차이는 없습니다 그러나 어떤 클래스에서 맴버 변수가 굉장히 많다고 생각을합니다 class A에 맴버 변수가 10개이상이 있다고 할때 setter로 다 적용하기에는 너무 귀찮을 수 있습니다 그럴때는 간단하게 빌더패턴을 적용하면 . .을 이용해서 속성에 바로 접근해서 늘릴 수 있습니다. 예시를 보여드리겠습니다.. public class A { private Integer.. 2021. 10. 4.
백준 목장 건설하기 14925 문제 https://www.acmicpc.net/problem/14925 해결방법 dp[i][j] = i, j일때 만들 수 있는 직사각형길이 자신의 왼쪽 왼위쪽 대각선 위쪽을 보면서 최솟 값 + 1을 해주면 현재에서 만들 수 있는 최대 길이가 나온다 이문제에서 틀릴 수 있는 점 초기 ans를 생각없이 -1f로 두었는데 그때 문제는 모든 목장에 1이나 2가 도배 되었을 경우 출력이 0이 아니라 -1로 되어서 틀릴 수 있다. 이것을 top down으로 할려고하는데 틀렸다 어디가 문제였지?.... 처음에 dp인데 어떻게 접근할지 생각을 못해서 다른분의 블로그를 참고하였다 출처 : https://sangdo913.tistory.com/116 님 감사합니다 소스 #include using namespace std.. 2021. 10. 4.
백준 2617 구슬 찾기 문제 https://www.acmicpc.net/problem/2617 풀이방법 처음에 아 이거 어떻게 풀지 이러다가 ... a라는 구슬은 b보다 무거울 수도 b라는 구슬보다 가벼울 수도 있다.. 이렇게 해서 indegree, outdegree를 생각하면서 있었는데.. 제가 아는건 위상정렬을 queue로 푸는 것이었는데 흠.... 그러한 방식으로 가능할지 싶었는데 너무 몰라서 답안을 보게 되었습니다.. 어렵게 생각한거 같다 특정노드보다 무거운 구슬들이 n / 2보다 많거나 특정노드보다 가벼운 구슬들이 n / 2보다 많으면 무조건 중간은 안된다 .. 이걸 보면 dfs를 두번 돌리면 되는것이다. 처음부터 백터를 두개로 놓고 각각의벡터들을 dfs로 돌리면 되는 문제였다 여기서 주의할점은 dfs처음 시작할때 r.. 2021. 10. 3.
동시성 vs 병렬성 ### Concurrency, CPU Bound vs I/O Bound - What is Concurrency Keyword - Concurrency CPU Bound -> cpu로 일 처리, 멀티프로세싱, 병렬적인 것 I/O Bound -> 파일을 읽거나 네트워크 접속, 시리얼 포트 읽는것(음식점 nfc).. Concurrency(동시성) cpu 가용성 극대화 위해 Paralleism(병렬)의 단점 및 어려움을 소프트웨어(구현) 레벨에서 해결하기 위한 방법 싱글코어에 멀티스레드 패턴으로 작업을 처리 동시 작업에 있어서 일정양 처리 후 다음 작업으로 넘기는 방식 즉, 제어권 주고 받으며 작업 처리 패턴(제어권을 주고 받으면서 왔다갔다 하는 것 ), 병렬적은 아니나, 유사한 처리 방식 Concurrency.. 2021. 10. 2.