어디까지 갈 수 있을까?
문제링크 www.acmicpc.net/problem/14501 처음에 DFS로 시도했는데 너무 어려워서 DP로 노선 변경하니까 금방 풀렸다,,,ㅎ 현재 일에 도달할 수 있는 날들 중 최대값을 찾아 현재 price+최대 price를 더해가면서 누적하면 풀리는 문제 [답코드] import sys input=sys.stdin.readline n=int(input()) t=[] p=[] for _ in range(n): a, b = map(int, input().split()) t.append(a) p.append(b) # print(t, p) # p에는 선택될 수 있는 값 중 가장 큰 값을 누적시킨다 for i in range(n): max_value=0 for j in range(i): if j+t[j]
문제링크 www.acmicpc.net/problem/1038 ※※답 보기 전에 알고가기※※ n이 1022이면 x가 9876543210이 돼서 n이 1023일 때부터는 감소하는 수가 없게 된다. 이 때 부터는 무조건 -1을 출력하면 된다 시간 복잡도를 최대한 줄였는데 왜 시간초과가 나는지 생각하고 있었는데 이거 때문이었다 [답코드] import sys input=sys.stdin.readline n=int(input()) arr=[i for i in range(10)] i=1 while True: if i>1022: break back=arr[i]%10 for j in range(back): arr.append(arr[i]*10+j) i+=1 arr.sort() # print(arr) if n>len(ar..
#게시글 저장(도메인) -Posts(엔티티) -PostsRepository #게시글 저장 테스트 @After cleanup(){deleteAll} 리포지토리에 엔티티 객체 저장하고 잘 불러와지는지 테스트 #게시글 등록/수정/조회 API 만들기 Request 데이터 받을 Dto API 요청 받을 Controller 트랜잭션, 도메인 기능 간의 순서를 보장 Service save()는 추가 뿐만 아니라 수정에도 사용한다. save()는 이 객체가 새로운 객체인지 기존 객체인지 판단하여, 새로운 객체가 아닌경우 EntityManager의 merge쪽으로 보낸다. repository.save() 하면 엔티티 객체 반환 delete말고 모두 entity 관련 객체를 반환한다 Controller에서 서비스에 Dto..
템플릿 엔진 지정된 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어 스프링에서 권장하는 템플릿 엔진에는 머스테치, Thymeleaf가 있다 서버 템플릿 엔진과 클라이언트 템플릿 엔진 리액트, 뷰 - 클라이언트 템플릿 엔진 서버에서 일단 빈 html을 보내고 js를 다 읽고 화면을 그림 단 : 첫 화면을 보기까지 걸리는 시간이 길다 Jsp, Freemarker - 서버 템플릿 엔진 서버에서 모든 데이터를 만들어 클라이언트에 html만 보냄 기본 페이지 만들기 1. build.gradle에 의존성 추가 compile 'org.springframework.boot:spring-boot-starter-mustache' 2. index.mustache 생성 더보기 스프링 부트로 시작하는 웹서비스..
@Component 해당 어노테이션이 있는 클래스를 객체로 생성해 bean으로 관리 @Controller, @Service, Repository @Component 클래스를 구체화 한 것 시각적으로 역할을 명시하기 위해 사용 @Autowired 스프링 컨테이너에 있는 bean 중 타입에 맞는 객체를 주입해달라 @RequestMapping 해당 url로 들어오는 요청에 대한 처리를 해당 클래스에서 한다 @RestController @Controller+@ResponseBody @ResponseBody를 모든 메소드에 적용한다 #POST방식의 요청 @RequestBody http body를 자바 객체에 담을 수 있다 Json을 Java Object로 변환 @ResponseBody 자바 객체를 http bod..
패키지 이름 소문자로 클래스, 인터페이스 이름 파스칼 표기법 변수명 카멜 표기법 1. 테스트 코드 TDD와 단위 테스트 차이 TDD(Test Driven Development) : 테스트 주도 개발, 테스트 코드를 먼저 작성하는 것 단위 테스트 : 기능 단위의 테스트 코드를 작성하는 것을 말함 단위 테스트를 하면 빠른 피드백을 얻을 수 있고 자동검증이 가능해 테스트 코드로 먼저 검증 후 그래도 못 믿겠을 때 프로젝트 실행해 확인하는 것 추천 Applicaiton 클래스 앞으로 만들 프로젝트의 메인클래스 @SpringBootApplication 스프링 Bean 읽기와 생성 가능하게 함, 해당 어노테이션이 있는 위치부터 읽기때문에 항상 프로젝트 최상단에 위치해야 한다. SpringApplication.run..
반응형 웹 URL, URI 정적 웹 : html 그대로 보여줌 동적 웹 : 변수에 의해 html 값이 달라짐 HTTP : 컴퓨터들끼리 HTML파일을 주고받을 수 있도록 하는 소통방식에 관한 약속 velog.io/@pear/HTTP-%EC%9A%94%EC%B2%AD%EA%B3%BC-%EC%9D%91%EB%8B%B5 velog.io/@deokyeong1020/HTTP-%EC%9B%B9%EC%84%9C%EB%B9%84%EC%8A%A4-%EA%B4%80%EB%A0%A8-%EC%9A%A9%EC%96%B4 post : 전달하려는 정보가 HTTP BODY에 포함되어 전달되는 것 get : 전달하려는 정보를 URL로 보내는 것 REST에서 CRUD는 다음과 같이 정의 POST - 생성 GET - 읽기 PUT - 수정 ..
스프링 빈 스프링 IOC 컨테이너가 관리하는 자바 객체 DI(Dependency Injection) 스프링이 관리하는 객체를 가져와 사용하는 것, 부품 조립 스프링 객체 생성, 객체 라이프 사이클 관리, 의존 주입 모두 해줌 강한 결합 개발자가 객체 직접 관리(new로 생성해서) 느슨한 결합 스프링에서 객체 생성된 것을 주입받음 객체 사용만 하는 것 IOC(Inversion Of Control) 스프링이 객체 생성 같은 프로그램의 흐름을 주도, 느슨한 결합 생성자가 하나 있다면 @Autowired 안써도 스프링이 객체 알아서 주입해준다 서블릿 웹에서 JAVA 프로그래밍을 구현하기 위해 탄생 서블릿 컨테이너 서블릿을 실행하는 주체 Servlet과 웹 서버가 통신할 수 있는 방법 제공 대표적 : 톰캣 OOP..