본문 바로가기

전체 글

(730)
[Greedy] BOJ11047 https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net
BOJ7568 https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net
[Java] Stream 자바 8에서 추가된 Optional과 Stream에 대해서 공부를 해보자 공부 관련 실습해보기 전에 간단하게 특징 및 장단점을 정리해보자 -특징 Java를 이용해 함수형 프로그래밍할 수있게 API를 제공해준다. 장점 원본의 데이터에 변경없이 가공할 수있다. 메서드체이닝을 통해 가공이 가능, 코드량을 줄이고 간결하게 표현이 가능하다. 병렬처리가 가능하다, 쓰레드를 이용해 많은 요소를 빠르게처리 가능 단점 함수형 프로그래밍이 너무 많아지면, 다수의 개발자가 운영 및 관리에 어려움이 따를수 있음(함수형 프로그래밍은 자바 표준 개발 방식이 아니라 익숙하지 않은 개발자들이 존재할수 있음) 생성하기 배열 / 컬렉션 / 빈 스트림 Stream.builder() / Stream.generate() / Stream.it..
BOJ2231 https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net
[BruteForce] BOJ2798 https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net
[Spring] WebClient WebClient는 RestTamplate과 차이가있다. 공통점은 둘다 HttpClient의 모듈이다 차이점은 RestTemplate과 달리, WebClient는 Non-blocking방식이다. 해당 방식이 필요한 이유는 네트워킹의 병목현상을 줄이고 성능을 향상 시키기 위해서이다. Core당 1개의 쓰레드를 이용합니다. 각 요청은 이벤트 루프 내 job으로 등록이됩니다. 이벤트 루프는 각 Job을 제공자에게 요청하고, 결과를 기다리지 않고 다른 Job을 처리한다. 제공자로부터 이벤트 루프로 콜백으로 응답이 오면, 결과를 요청자에게 제공한다. WebClient는 이벤트에 반응형으로 동작하도록 설계 되었다. 동시 접속자가 많으면, RestTemplate보다 뛰어난 성능을 가지며 Spring 커뮤니티에서는 R..
[Java] 옵저버 패턴 옵저버 패턴은 간단하게 얘기하면, 어떤 객체의 상태가 변할 때 그와 연관된 객체 들에게 알림을 보내는 디자인 패턴이다. 쉽게 얘기하면, Badi의 상태가 변할때 마다 notifyCrew를 호출, 해당 크루는 객체에서 가지고 있는 Crew원의 리스트를 업데이트 해준다. 메인에서는 배디를 크루원들이 구독하여, 구독자와 발행자의 관게를 맺게 된다. 주로 분산/이벤트 핸들링 시스템을 구현하는 데 사용된다. 발행/구독 모델로 알려져 있기도 하고 발행자의 상태가 변경되면 구독자들에게 해당 값을 전파하는 방식이다. 옵저버 패턴은 한 객체의 상태가 바뀌면, 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다 의존성을 정의한다. 단, 설계는 느슨한 결합으로 하는 것이 좋다. 두 객체..
[Java] 팩토리 디자인 패턴 팩토리 패턴 : 간접적으로 객체를 생성해준 후에 반환해주는 역할이다. * 장점 생성할 클래스를 미리 알지 못해도 팩토리 클래스가 객체 생성 담당한다. 객체의 자료형이 하위클래스에 의해서 결정 -> 확장 용이성 동일한 형태로 프로그래밍 가능 확장성 있는 전체 프로젝트 구성가능 * 단점 객체가 늘어날때 마다 하위클래스 재정의로 인한 불필요한 많은 클래스 생성 가능 쉽게 말하면 하나의 인터페이스를 여러 클래스가 상속 받는 다고 가정하자 shape interface를 여러 객체가 상속을 받는다면 해당 클래스로 하게되면 하나의 호출로, 여러개의 객체 호출을 할수 있다. 관련 클래스 다이어 그램이다. 하나의 인터페이스를 여러개의 클래스에서 받아서 객체생성은 팩토리에서 전담 하는 것이다. 마무리 장점 * 객체 생성하..