목록분류 전체보기 (718)
쌓고 쌓다
https://school.programmers.co.kr/learn/courses/30/lessons/12900 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 가로 N인 길이를 채우기 위해 N-1, N-2, N-3, ... 길이를 채운 상태에서 타일을 채운다고 생각해 보자. 1. N-1 길이 N-1 길이를 채운 상태에서 세로 타일을 하나 설치하면 N 길이의 타일을 채울 수 있다. 2. N-2 길이 N-2 길이 타일을 채운 상태에서 위의 두 방법으로 타일을 채워 N길이를 채울 수 있지만. 세로 타일을 두 개 설치하는것은 이미 N-1 길이 타일에..
정리 내용 : 인프런 - 김영한 아래의 의존 관계를 기대하며 설계했다. OrderServiceImpl (주문 서비스 구현체) public class OrderServiceImpl implements OrderService { // private final DiscountPolicy discountPolicy = new FixDiscountPolicy(); private final DiscountPolicy discountPolicy = new RateDiscountPolicy(); } 현재 코드는 할인 정책 Fix(고정), Rate(정률) 변경에 따라 구현체인 Fix, Rate를 갈아끼워야하는 문제가 있다. 즉, OrderServiceImpl가 인터페이스 OrderSerivce에게만 의존하는 것이 아니라..
https://school.programmers.co.kr/learn/courses/30/lessons/17679 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 1. 동일한 2x2 블록을 찾는다. - check 2. 동일한 2x2 블럭을 저장해 놨다가 한 번에 삭제한다. - remove 3. 삭제로인해 생긴 빈 공간을 메꾼다. - move check는 좌측 위에서 우측 아래 방향으로 검사하면 편하고 빈 공간을 메꾸는 것은 우측 아래에서 좌측 위 방향으로 검사하면 스택(테트리스)과 같이 블록들이 빈 공간을 통해 뚝뚝 떨어지는 기능을 구현할 수 있..
1. SpringDataJpa로 변경 및 edit 변경 사항 SpringDataJpaPosterRepository (interface) public interface SpringDataJpaPosterRepository extends JpaRepository, PosterRepository { } PosterService @Service @Transactional public class PosterService { private SpringDataJpaPosterRepository posterRepository; // 변경 @Autowired public PosterService(SpringDataJpaPosterRepository posterRepository) { // 변경 this.posterRep..
회원 테이블 생성 CREATE TABLE MEMBER ( ID VARCHAR(255) NOT NULL, -- 아이디(기본 키) NAME VARCHAR(255), -- 이름 AGE INTEGER NOT NULL, -- 나이 PRIMARY KEY(id) ); 회원 클래스 생성 @Entity @Table(name="MEMBER") public class Member { @Id @Column(name="id") private String id; @Column(name="name") private String username; private Integer age; } @Entity 이 클래스를 테이블과 매핑한다고 JPA에게 알린다. @Entity가 붙은 클래스를 엔티티 클래스라고 한다. @Table 엔티티 클래스..
PosterRepository (interface) public interface PosterRepository { ... void edit(Long id, Poster newPoster); } 리포지토리 인터페이스에 수정을 위한 edit 추상 메소드를 작성. 수정할 게시글의 id와 수정할 내용이 담긴 newPoster를 받는다. JpaPosterRepository (구현체) @Repository public class JpaPosterRepository implements PosterRepository{ ... @Override public void edit(Long id, Poster newPoster) { Poster oldPoster = em.find(Poster.class, id); oldPos..
1. 폼 입력 값 유지 PosterController @Controller public class PosterController { ... @GetMapping("/poster/write") public String writeForm(Model model) { model.addAttribute("poster", new Poster()); return "posters/createPosterForm"; } } 우선 게시글 작성 페이지를 위한 컨트롤러에서 게시글 객체를 생성하여 함께 게시글 작성 페이지로 넘어가게 한다. createPosterForm.html 제목 작성자 내용 제출 th:object th:object로 form 내에 사용할 객체를 지정한다. th:field th:field 속성은 th:obje..
https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 현재 들고 있는 수에 대한 정보는 (값, 인덱스)이다. 이 수를 스택에 넣을 것이다. 그냥 넣는 게 아니다. 앞서 들어 있는 스택의 수보다 큰 값이라면, 앞서 들어 있는 수의 뒷 큰 수는 현재 내가 들고 있는 수가 된다. 스택에 들어있는 수의 뒷 큰수를 계속 계산하여 현재 들고 있는 수보다 같거나 큰 수가 스택의 top에 있을 때까지 반복한다. 그리고 스택에 푸쉬한다. 현재 들고 있는..