목록개발자 (28)
최코딩의 개발노트
사이트https://www.acmicpc.net/problem/20055 문제분석문제만 잘이해한다면 어렵지 않은 문제다!! 이해하는데만 30분걸림.. 제대로 안읽어서 ㅜㅜㅜ 문제의 핵심은 내구도이다!! 문제의 이해를 돕기 위해 아래를 참고해보자 이해입력 부분: n은 컨테이너 가로 칸 갯수, k는 내구도가 0인 칸(조건) ex) 만약 내구도가 0인 칸이 k개 이상이면 종료!! 마지막으로 두번째 입력부분은 n*2개 칸의 내구도를 입력하는 부분이다. 3 21 2 1 2 1 2 입력은 위와 같이 받을것이다!! 참고로 두번째 입력부분에서 1 2 1 2 1 2 이렇게 입력받는데 실제 그림은 1 2 12 1 2 이다. 음 다시 말해서 만약 1 2 3 4 5 6 이렇게 입력받으면 실제 그림은 1 2 36 5 4..
사이트 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 문제 분석 x가 3으로 나누어 떨어지면 3으로 나누고 x가 2로 나누어 떨어지면 2로 나누고 2개가 해당이 안될시에 1을 빼면 된다. 쉬울꺼 같지만 의외로 복잡하다. 애매한게 주어진 숫자가 10일때를 생각해보자 10 9 3 1 10 5 4 2 1 위 경우의 수를 볼때 먼저 1을 빼면 경우의수가 4가 나오지만 2로 나눌때는 5가지가 된다.. 또한 6같은 경우는 2하고 3 동시에 나눌 수 있기 때문에 뭔가 애매하다. 그래서 거꾸로 생각했다! 처음 숫자를 토대로 나누지말고 맨 아래로 들어가서 경우의 수를 구하..
프록시 프록시 기초 - em.find(): DB를 통해서 실제 엔티티 객체를 조회한다. - em.getReference(): DB 조회를 미루는 가짜 즉 프록시 엔티티 객체를 조회 한다. 프록시 특징 - 실제 클래스를 상속 받아서 만들어진다. - 실제 클래스의 겉 모양이 같다. - 사용하는 입장에서는 이게 진짜인지 가짜객체인지 모른다. 위치투명성? - 프록시 객체는 실제 객체의 참조를 보관한다. - 즉 프록시 객체를 호출하면 실제 객체의 메소드를 호출하는 것이다. - 프록시 객체는 원본 엔티티를 상속받으므로 타입 체크시 instance of를 사용한다. 프록시 초기화 Member findMember = em.getReference(Member.class, member.getId()); //이 값이 사용될..
상속관계 매핑 조인 전략(JOINED) - 조인 전략은 위와 같이 객체랑 관계형DB랑 구조가 비슷할 때 사용하는 것이다. @Entity // 중복되는 속성들을 다 하위로 보냄 즉 item 테이블 d없음 근데 쿼리 em.find 할때 union해서 다 뒤짐 //@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) // 이거 안쓰면 상속받은 애들 다 한테이블로 추가됨 즉 상속으로 나뉘게 해주는거 innerjoin @Inheritance(strategy = InheritanceType.JOINED) // 다 통일한 단일 테이블 추가로 discrim 없어도 dtype 생김 //@Inheritance(strategy = InheritanceType.SINGLE_TA..
사이트 https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 문제 분석 문제를 처음에 잘못 읽어서 재귀함수로 계속 구현하다가 결국 도움을 받았다... 반성하자. 일단 DP는 필자가 굉장히 어려워하는 알고리즘이다. DP는 먼저 점화식을 세우는게 우선이다. 1,2,3만 더해서 만들 수 있는 경우의 수를 구하는 것이다. 1=(1) 2=(1+1, 2) 3=(1+1+1, 1+2, 2+1, 3) 4=(1+1+1+1, 1+2+1, 2+1+1, 1+1+2, 2+2, 3+1, 1+3) 쭉 이렇게 간다. 여기서 자세히 보면 규칙이 나온다. 4는 1,2,3의 경우의 ..
시작 @Slf4j @RestController public class ApiExceptionController { @GetMapping("/api/members/{id}") public MemberDto getMember(@PathVariable("id") String id){ if(id.equals("ex")){ throw new RuntimeException("잘못된 사용자"); } return new MemberDto(id,"hello"+id); } @Data @AllArgsConstructor static class MemberDto{ private String memberId; private String name; } } - 객체를 반환해주는 컨트롤러를 다음과 같이 만들어주자 - 이때 ex가 나..