전체 글(110)
-
백준 알고리즘 풀이 14500번 - 테트로미노
https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net dfs로 풀수 있던 간단한 문제. 알고리즘 1. dfs로 ㅗ모양을 제외한 도형을 움직이면서 도형안에 들어가는 최댓값을 구한다. 2. ㅗ모양 탐지를 위해서 도형을 돌려본다. 3. 1,2번에 대해 맵 전체를 돌면서 최댓값을 찾는다. 시간 복잡도 dfs의 시간복잡도가 O(V+E)인데, 맵을 N X M 이므로 총 O(NXM(V+E)). 소스코드 #include using namespace std; int..
2021.07.05 -
[Spring Boot] 댜양한 의존 관계 주입 DI 방법
스프링을 사용하면서 DI를 사용하는 방법에는 크게 4가지가 있는데 각각의 장단점과 사용 방법에 대해서 알아보자. 1. 생성자 주입 의존성 주입을 생성자에서 수행하는 방법. 생성자는 일반적으로 객체가 생성될때 딱 한번 실행되는 것이 보장된다. 불변 / 필수 의존관계 설정에 사용된다. @Component public class OrderServiceImpl implements OrderService{ private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy ; @Autowired public OrderServiceImpl(MemberRepository memberRepository, DiscountP..
2021.07.01 -
[JAVA] call by reference vs call by value
메소드에 값을 전달하는 것이 아니라 객체를 전달하는 경우 메소드에서 객체의 객체변수 값을 변경할 수 있게 된다. class Plus{ public void update(int count){ count++; } } public class Counter{ int count = 0; public static void main(){ Counter counter = new Counter(); Plus updater = new Plus(); updater.update(counter.count); } } 코드가 위와 같다면, count 값은 어떻게 나올까? 위와 같은 경우, Plus객체에서 update 메소드는 call by value로 값을 받았기때문에, count 값에는 변화가 없이 0으로 출력이 된다. 그렇다면..
2021.06.30 -
백준 알고리즘 풀이 3197번 - 백조의 호수
https://www.acmicpc.net/problem/3197 3197번: 백조의 호수 입력의 첫째 줄에는 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1500. 다음 R개의 줄에는 각각 길이 C의 문자열이 하나씩 주어진다. '.'은 물 공간, 'X'는 빙판 공간, 'L'은 백조가 있는 공간으로 나타낸다. www.acmicpc.net - BFS 문제 다음번에 탐색할 위치와, 얼음을 녹일 위치를 저장하는 문제. 알고리즘 큐를 총 4개 준비한다. 현재 백조의 bfs를 탐색하는 swanQ 1일뒤 백조가 bfs를 탐색할 swanNQ 현재 얼음을 녹이는 bfs를 탐색할 iceQ 1일뒤 얼음을 녹이는 bfs를 탐색할 iceNQ 1. 백조가 진행하는 첫번째 bfs를 구성한다. 처음 실행이라면, 백조의 위치에서 ..
2021.06.21 -
[Spring boot] 싱글톤 패턴의 쓰래드 문제
싱글톤 패턴은 spring에서 기본적으로 사용되는 패턴으로 소프트웨어 디자인 패턴에서 싱글턴 패턴을 따르는 클래스는, 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 이와 같은 디자인 유형을 싱글턴 패턴이라고 한다 이런 특성을 가지고 있다. 싱글톤 패턴의 장점은 컨테이너가 서비스 객체를 생성하고 지우는 부담을 줄여주어, 메모리 관리에서 강점을 가진다. 하지만, 쓰래드 문제도 존재해 stateless 한 상태로 만드는 것이 필수적이다. 말로는 감이 잘 안올테니 코드를 통해 확인해보자 StatefulService.java public class StatefulService { // 얘가 문제를 만듦. 무상태로 만들어야..
2021.06.05 -
통계분석 용어 정리(통계분석, 기술통계, 통계적추론,확률변수, 확률분포란?)
통계분석이란? 특정한 집단이나 불확실한 현상을 대상으로 자료를 수집해 대상 집단에 대한 정보를 구하고 적절한 통계분석 방법을 이용해 의사결정하는 과정 기술통계 주관이 섞일 수 있는 과정을 배제하여 통계집단들의 여러 특성 수량화, 객관적 데이터로 나타내는 통계분석 방법론 통계적 추론 sample을 통해 모집단을 추정하는 것 1) 모수추정 - 표본집단으로부터 모수를 분석하여, 모집단 추론 2) 가설검정 - 대상 집단에 대해 특정 가설 설정, 가설 채택여부 결정 확률 변수 특정값이 나타날 가능성이 확률적으로 주어지는 변수로, 정의역(domain)이 표본공간, 치역이 실수값(0
2021.05.21 -
REST API의 규칙
사내 프로젝트를 진행하면서 프론트 부분을 외주사에 대행하게 되었다. rest api 제공을 위해 학습을 진행하였다. 학습을 위해 아래 페이지를 참고하였다. 참조 : https://dzone.com/articles/7-rules-for-rest-api-uri-design-1 7 Rules for REST API URI Design - DZone Integration URIs, or Uniform Resource Identifiers, should be designed to be readable and clearly communicate the API resource model. These rules will help you succeed. dzone.com # Rule 1 URI의 마지막에 후행 슬래시 /..
2021.05.13 -
[Spring boot]DataSource, Repository, Service, Domain, Controller, bean 이란?
spring boot에는 정형화된 개발 패턴이 존재하는데 이때 사용하는 것들에 대해서 용어들을 알아보자. DataSource란? JDBC로 데이터에 접근하게 되면, 데이터베이스에 접근시마다 connection을 맺고 끊는 작업이 수행된다. 이 작업을 줄이고 access 시간을 줄이기 위해 미리 connection을 생성해 두고, 데이터 베이스에 접근하는 사용자에게 미리 생성된 connection을 주고 돌려받는다. 이때 이 connection들을 모아놓는 곳을 connection pool이라 하고, DataSource는 java에서 connection pool 지원을 위한 인터페이스. spring IoC란? 객체가 내부적으로 조작할 객체를 직접 생성하지 않고 외부로부터 주입받는 기법을 말한다. bean이..
2021.05.02