[백준] 2629번 - 양팔 저울 (한줄평) 생각보다 머리가 복잡했던 문제.. 점화식을 만들기가 어려웠다.. 무조건 복습필수다 풀이 시간: 90분 이내 1) 문제 해결 아이디어 추의 개수 n(30 이하), n개의 추의 무게(500이하의 자연수)가 오름차순으로 주어지고 구슬의 개수 m(7이하), m개의 구슬의 무게(40000 이하의 자연수)가 주어진다. 양팔 저울에 추를 사용하여(올리거나 올리지 않을 수 있음) 주어진 m개의 각 구슬의 무게를 확인할 수 있는지 여부를 구하는 문제다. 각 추를 사용할 때 3가지 경우의 수가 있다. 즉, 추의 개수가 n이면 추를 이용하여 구할 수 있는 모든 경우의 수는 3**n이 된다. n의 값이 최대 30이므로 단순하게 완전 탐색을 한다면 이 문제는 시간초과로 풀 수 없게된..
1. this 예약어 1. 자신의 메모리를 가리키는 this this는 생성된 인스턴스 자신을 가리키는 역할을 한다. class BirthDay { int day; public void setDay(int daY) { this.day = day; } } 2. 생성자에 다른 생성자를 호출하는 this this를 사용해 클래스의 생성자에서 다른 생성자를 호출할 수 있다. (주의!) this를 사용하여 생성자를 호출하는 코드 이전에 다른 코드를 넣으면 오류가 난다! (디폴트 생성자에서 생성이 완료되는 것이 아니라 this를 사용해 다른 생성자를 호출하므로) class Person{ String name; int age; Person(){ this("이름 없음", 1); // Person(String, int)..
객체 객체지향 프로그램의 대상, 생성된 인스턴스 클래스 객체를 프로그래밍 하기 위해 코드로 만든 상태 인스턴스 클래스가 메모리에 생성된 상태 멤버 변수 클래스의 속성, 특성 메서드 멤버 변수를 이용하여 클래스의 기능을 구현 참조 변수 메모리에 생성된 인스턴스를 가리키는 변수 참조 값 생성된 인스턴스의 메모리 주소값 접근 제어자 접근 가능 범위 public 외부 클래스 어디에서나 protected 같은 패키지 내부 & 상속 관계의 클래스에서만 아무것도 없는 경우 default 이며 같은 패키지 내부에서만 private 같은 클래스 내부에서만 1. 객체 지향 프로그래밍과 클래스 1. 클래스란? 클래스는 객체의 속성과 기능을 코드로 구현한 것 - 클래스 외부에는 package 선언, import 문장 외 아무..
(인프런) 김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술을 공부하고 리뷰한 글입니다. 1. AOP 적용 AOP: Aspect Oriented Programming 공통 관심 사항(cross-cutting concern) vs 핵심 관심 사항(core concern) 분리 1. 시간 측정 AOP 등록 package hello.hellospring.aop; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.springframework.stereotype.Component..
(인프런) 김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술을 공부하고 리뷰한 글입니다. 1. AOP가 필요한 상황 1) 모든 메소드의 호출 시간을 측정하고 싶을 때 2) 공통 관심 사항(cross-cutting concern) vs 핵심 관심 사항(core concern) 3) 회원 가입 시간, 전체 회원 조회 시간을 측정하고 싶을 때 1. MemberService 회원 조회 시간 측정 추가 @Transactional public class MemberService { ... /** * 회원 가입 */ public Long join(Member member) { long start = System.currentTimeMillis(); // 회원가입 시작 시각 try {..
(인프런) 김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술을 공부하고 리뷰한 글입니다. 스프링 DB 접근 기술 4가지 방식대로 차례로 진행할 예정이다. 1. 순수 JDBC 2. JDBCTemplate 3. JPA 4. 스프링 데이터 JPA 1. 스프링 데이터 JPA를 이용한 코드 작성 스프링 부트와 JPA만 사용해도 개발 생산성이 정말 많이 증가하고 개발해야할 코드도 확연히 줄어든다. 여기에 스프링 데이터 JPA를 사용하면 기존의 한계를 넘어 리포지토리에 구현 클래스 없이 인터페이스 만으로 개발을 완료할 수 있다. 그리고 반복 개발해온 기본 CRUD 기능도 스프링 데이터 JPA가 모두 제공한다. 스프링 부트와 JPA라는 기반 위에, 스프링 데이터 JPA라는 환상적인 프..
[백준] 10942번 - 팰린드롬? (한줄평) 아이디어는 빨리 떠올렸지만 코드 짜는게 생각보다 오래걸렸던 문제다. 대각선 순서로 확인하는 코드 그냥 외우자.. 이상한데서 시간 낭비했다.. 풀이 시간: 75분 이내 1) 문제 해결 아이디어 크기가 n인 수열과 m개의 시작점, 끝점(s, e)가 주어질 때 각 질문에 대한 팰린드롬 여부를 구하는 문제다. 각 질문은 두 정수 S와 E(1 ≤ S ≤ E ≤ N)로 나타낼 수 있으며, S번째 수부터 E번째 까지 수가 팰린드롬을 이루는지를 물어보며, 명우는 각 질문에 대해 팰린드롬이다 또는 아니다를 말해야 한다. (1 ≤ N ≤ 2,000, 1 ≤ N ≤ 2,000, 1