처음 보자마자 한숨이 나온 문제이다.재귀를 통해 문제를 접근해야겠다고 생각했지만, 쉽지 않았다. 재귀 메서드->재귀 메서드는 x + 1의 방향으로 진행한다. x가 M에 도달하면, y+1을 한다.->x 방향으로 진행하며, 가로 방향 직사각형은 true, 세로 방향 직사각형은 false로 둔다.->매 칸마다, 가로로 할지 세로로 할 지를 결정한다.-> 0,0에서 시작하여, 빠짐없이 종이를 나눌 수 있다. 합 메서드-> 합은 가로(true) 조사, 세로(false) 조사 따로따로한다.-> for(y+1 for(x+1) ) 이런 형식의 for문으로 가로부터 조사한다.-> true가 끊기기 전까지 수를 10의 자리씩 늘려간다.-> 모든 가로를 더한 값을 저장->세로 역시 마찬가지, x+1( y+1) 이런 형식으로..

전체 글
다익스트라 문제이다.https://www.acmicpc.net/problem/1939 양방향 엣지와 여러 노드가 있다.이때, 중량 제한 다리들이 있는데, start부터 end까지 옮길 수 있는 최대 중량을 구한다. -> startNode를 PriorityQueue에 추가한다.-> 그 섬이 가질 수 있는 최대는 무한대로 한다.->while문 돌린다.-> PriorityQueue에서 노드를 뺀다.-> 만약, 다음 섬이 가질 수 있는 값이, 현재 섬의 값보다 크다면, 최댓값을 가지는 것을 구하는거니, 필요없다.(continue)-> 만약, 현재 섬이 end라면 현재 섬의 값을 출럭한다.-> 위의 둘다 아니라면, 다음 섬으로 진행하기 위해 탐색을 한다.-> 다음 섬이 가질 수 있는 값은, 현재 섬이 가질 수 있..

요청으로 json의 시간을 String으로 받는다.이때, 우리는 그 시간을 시간 객체로 파싱해주어야 한다.시간 객체로 파싱은 DB를 고려해서 해야한다. 들어가기에 앞서...ISO 시간 형식ISO 시간 형식 : YYYY-MM-DD HH:mm:ss OR YYYY-MM-DDz (UTC일때)UTC : 협정 세계시로, 하나의 값만 가진다. 보통 second 뒤에 z가 붙는다면 UTC이다. 즉, UTC +-N을 한 값이 로컬 시간인 것이다. java.time.=> 날짜, 시간, 순간, 기간 등의 대표적인 자바 패키지이다.=> ISO 형식에 기초를 둔다.=> Immutable하고, 스레드 안전하다.=> 모든 dates와 times관련 타입에서 파싱이 가능한 메서드를 지원한다.=> timezone을 지원하지 않는 클..
1. 싱글톤 패턴-스프링의 기본 빈 스코프 2. 팩토리 패턴, 의존성 주입 패턴-스프링의 IoC 컨테이너 3. 프로토타입 패턴-스프링의 프로토타입 스코프 4. 프록시 패턴, 데코레이터 패턴-스프링 AOP 5. 옵저버 패턴-이벤트 리스너 6. 책임 연쇄 패턴-스프링 시큐리티 필터 체인 7. 전략 패턴, 컴포지트 패턴, 어뎁터 패턴-구현 전략 8. 반복자 패턴-자바 Iterator 9. 빌더 패턴- 롬복 계속 업데이트 예정
캡슐화란 무엇인가?객체의 속성과 행위를 하나로 묶고, 외부로 부터 내부를 감싸 숨겨 은닉한다.그저 여러 은닉 방법 중 하나일 뿐임. 은닉해서 좋은 점은?1. 필드는 외부에서의 데이터 접근을 막기 때문에 객체의 상태(필드)를 보호할 수 있음.-이를 통해 개발자에게 은닉의 의도를 알릴 수 있음2. 메서드는 파라미터와 리턴값만 알면 되기 때문에, 결합도를 약화시킴-이를 통해 코드 수정에 따른 유지보수 비용을 감소시킬 수 있음.(코드 수정에 대해 큰 이점) 은닉을 위한 방법들은?1. 접근 제어자 private를 사용하여 필드를 지키자!2. setter를 지양하고, 빌더(복잡한 과정)나 정적 팩토리 메서드 패턴을 시용하자.3. 인터페이스, 부모 객체 의존을 통해 은닉하자!4. 되도록이면, 파라미터와 return ..
계속해서 주소 추가 예정 객체 지향이란?개별적 객체를 만들고 이 부품들을 하나씩 조립해서 완성된 프로그램을 만드는 기법을 말합니다.객체란?속성과 동작으로 구성되는 물리적, 개념적으로 존재하는 식별 가능한 것.객체 모델링이란?현실 세계의 객체를 추상화를 통해 필드와 메소드를 가진 소프트웨어 객체로 설계하는 것.객체 모델링의 과정은?개념 모델링-> 논리 모델링 -> 물리 모델링학습 목표: 각 모델링의 방법론 개념을 익힘으로 프로젝트 시 경험할 수 있게 한다. 개념 모델링(요구사항 분석): 필요 객체 데이터 수집논리 모델링(설계): 수집한 객체 데이터 추상화 + 다이어그램 등으로 체계화물리 모델링(구현): 코드를 통한 소프트웨어 객체로 구현 모델링 중 객체들의 관계는 어떻게 표현할 수 있는가?집합, 사용, 상..
@GeneratedValue(strategy = GenerationType.IDENTITY)mysql에서 위의 id값 전략을 사용 시List를 saveAll 시 bulk insert가 되는 것이 아닌 단일 insert가 됨을 확인함 IDENTITY의 동작-> Hibernate의 insert 쿼리-> mysql은 AUTO_INCREMENT를 사용해 ID를 생성, 저장-> Hibernate는 mysql에서 생성된 ID를 가져옴.(LAST_INSERT_ID())-> 즉, ID를 조회하기 위해 db에 요청을 보냄-> 엔티티에 저장 SEQUENCE의 동작-> DB는 SEQUENCE를 설정하여 하나의 테이블에 둠-> SEQUENCE는 다음 insert 시 DB수준에서 ID값을 반환하여 설정함-> Hibernate는..
3 21 32 3이런 식으로 주어졌을때, 줄을 세워라.일일이 숫자의 관계를 받아 정렬해주기에는 시간 초과가 난다.즉, 정렬의 방법에서 한 번 정렬된 정보를 이용해서, 계속 정렬을 해주어야한다. 위상정렬은 방향이 있는 사이클이 없는 그래프라는 가정 하에깊이에 따라 순서를 표시한다. import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;public class Main { static int N, M; static List[] graph; static int[] values; static List answers = new ArrayList(); ..