분류 전체보기
백준 14497 주난의 난// bfs멈춰는 큐2개로 해결, 어려우면 1차원에서 논리를 짜라
14497번: 주난의 난(難) (acmicpc.net) 14497번: 주난의 난(難) 주난이는 크게 화가 났다. 책상 서랍 안에 몰래 먹으려고 숨겨둔 초코바가 사라졌기 때문이다. 주난이는 미쳐 날뛰기 시작했다. 사실, 진짜로 뛰기 시작했다. ‘쿵... 쿵...’ 주난이는 점프의 파 www.acmicpc.net * 어려우면 1차원에서 해보면서 논리를 짜라 # 1 0 0 1 0 0 계속 //q.push 1->멈춰, cnt++ //temp.push, q=temp, cnt++ ex) next가 1일때, temp.push만 되므로 q.size==0이 됨 => q=temp, cnt++ 실행됨. //새로운시작 * bfs는 도중에 탈출X, 방문배열에 정답을 모두담고, 출력만해라. * 탈출조건 문제 while (true..
백준 12851 // bfs암기, 정답 경우의수 구하기는 cnt[next]+=cnt[here]
12851번: 숨바꼭질 2 (acmicpc.net) 12851번: 숨바꼭질 2 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net * 정답 경우의수 구하기 핵심코드 for (int next : {now - 1, now + 1, now * 2}) { //1. 범위체크 if (next >= 0 && next >k ; /* * bfs algorithm * 1.초기화 cnt[n] = 1; * 2.종료조건 * 3.next 범위체크 * 4.next 방문체크 * 5.visit[next] 갱신 * 5.1 q.push!..
백준 13913 // bfs 경로추적은 prev[next]=here
13913번: 숨바꼭질 4 (acmicpc.net) 13913번: 숨바꼭질 4 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net * bfs 경로추적 핵심코드 prev[10]=5 // prev[5]=3 .. 이런식으로 연결함. ex) 노드 : 5-10-11(목표k) 벡터 : 11(k)-10(prev[11]). 문제 : 첫노드는 안들어감 ,역순으로 넣어짐 해결 : push(start), 리버스 for (int next : {now - 1, now + 1, now * 2}) { //1. 범위체크 if (next..
주문, 주문상품 엔티티 개발 // 복잡한생성은 생성메서드
*생성메서드 class Order //==생성 메서드==// 복잡한생성은 생성메서드로 해결! public static Order createOrder(Member member, Delivery delivery, OrderItem... orderItems){ //...문법 == 유사리스트 Order order = new Order(); order.setMember(member); order.setDelivery(delivery); for(OrderItem orderItem:orderItems){//각각주문에대해 다 add order.addOrderItem(orderItem); } order.setStatus(OrderStatus.ORDER); order.setOrderDate(LocalDateTime.no..
상품 서비스 개발
package jpabook.jpashop.service; import jpabook.jpashop.domain.item.Item; import jpabook.jpashop.repository.ItemRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; @Service @Transactional(readOnly = true) @RequiredArgsConstructor public class ItemService { private..
상품 리포지토리 개발
package jpabook.jpashop.repository; import jpabook.jpashop.domain.item.Item; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; import javax.persistence.EntityManager; import java.util.List; @Repository @RequiredArgsConstructor public class ItemRepository { private final EntityManager em; public void save(Item item){ if(item.getId()==null){ em.persist(item);..
상품 엔티티 개발 // setter없이 수정하는법
* setter없이 수정하는법 setter사용 X, 비즈니스 로직으로 stockQuantity값수정 //==비즈니스 로직==// /** * 재고증가 * @param quantity */ public void addStock(int quantity){ this.stockQuantity+=quantity; } /** * 재고 줄이기 * @param quatity */ public void removeStock(int quatity){ int restStock = this.stockQuantity - quatity; if(restStock
회원 기능 테스트
*테스트 어노테이션 @RunWith(SpringRunner.class) //JUnit 실행할때 스프링이랑 같이 실행해줘 @SpringBootTest //Spring boot 띄운상태로 테스트 돌려줘. (없으면 Autowired 안됨) @Transactional public class MemberServiceTest { * 회원가입검사 Transactional 문제 : Test 내의 Transactional은 기본값이 롤백 => insert 쿼리등 확인불가 해결 1 : Transactional(Rollback=false) 해결2: em 받고, em.flush @Autowired EntityManager em; @Test public void 회원가입() throws Exception{ //given Mem..