인프런 13

완전탐색_바둑이 승차_cut edge 방법,DFS 시간초과를 방지하는 법

if ans > val + ( total - tsum ) : return 전체 합에서 tsum(바둑이를 태웠건 안태웠건 지나간 바둑이의 무게) 을 빼면 앞으로 더할 수 있는 바둑이의 무게가 나온다. 여기서 val을 더한 값이 ans보다 작다면 더 할 필요가 없다. 끝까지 가도 어차피 ans보다 작기 때문이다. dfs에 tsum을 인수로 추가하여 시간 초과를 막는다는 것이 흥미롭다. def dfs(idx,val,tsum) : global ans if val > c : return if ans > val + (total-tsum) : return if idx == n : ans = max(ans,val) return else : dfs(idx+1,val+arr[idx],tsum+arr[idx]) dfs(id..

flutter을 이용한 간단한 화면 만들기

완성본 캡쳐 - 1. Scaffold를 이용해 화면을 구성한다. home: Scaffold ( ) 2. Scaffold 내에서 appBar를 만든다. appBar: AppBar( title: Text( 'Hello Flutter', style: TextStyle(fontSize: 28), ), centerTitle: true, ), title 영역에 Text 위젯을 만든다. 보여질 text는 'Hello Flutter' 이다. 글자의 크기는 style - TextStyle에서 변경할 수 있다. 이렇게 두면 글자는 왼쪽 정렬된다. 중간으로 옮기기위해 centerTitle : true를 속성으로 준다. 3. body는 SingleChildScrollView로 만든다. 이메일과 비밀번호를 입력과 사진 로그인 ..

그리디_회의실 배정, 씨름선수, 창고 정리, 침몰하는 타이타닉, 증가순열만들기, 역수열

그리디는 탐욕적인 이라는 의미로 지금 현재 가장 최적의 것을 계속 골르는 것이다. 주로 정렬과 함께 한다. 회의실 배정 코드 : if __name__=="__main__" : n = int(input()) meeting = [list(map(int,input().split())) for _ in range(n)] meeting.sort(key = lambda x : (x[1],x[0])) endTime,cnt = 0,0 for s,e in meeting : if s >= endTime : cnt +=1 endTime = e print(cnt) => 끝나는 시간을 오름차순으로 정렬한 후 시작시간이 이전 회의의 끝나는 시간보다 늦거나 같으면 해당 회의를 넣는다. 씨름 선수 코드 : if __name__=="..

이분탐색_ 이분탐색,랜선자르기,뮤직비디오,마구간 정하기

이분탐색 ! 시간 복잡도 : O(log n) 무조건 정렬이 되어있어야한다. start와 end 라는 포인터 변수를 만든다 . mid 라는 중간 지점 변수를 만들어서 (start + end ) // 2 로 설정한다. 이분탐색 코드 : if __name__=="__main__" : n,m = map(int,input().split()) num = list(map(int,input().split())) num.sort() start,end = 0,n-1 while start capacity : # cd 추가 cnt +=1 sum = x else : sum += x return cnt if __name__=="__main__" : n,m = map(int,input().split()) music = list(m..

냅색 알고리즘 _ 가방문제, 동전교환, 최대 점수 구하기

스터디는 이미 끝났지만 이미 구매해놓은 인강 다 듣고 풀어야지.. ---- 🐾20220914 복습 어떻게 풀 때마다 까먹지...? 그래도 처음 봤을 때 보다 더 빨리 풀었다는 것에 의의를 둔다... 가방 문제 : if __name__=="__main__" : n,m = map(int,input().split()) dy = [0]*(m+1) for i in range(n) : w,v = map(int,input().split()) for j in range(w,m+1) : dy[j] = max(dy[j-w] + v, dy[j]) print(dy[m]) weight 와 value가 주어질 때 주어진 무게까지 담을 수 있는 가방에서 최대의 가치를 만들어라 dy[j] 의 의미 : j 무게까지 담길 때의 최대 가..

[2]스프링 빈과 의존관계 _ 컴포넌트 스캔, 자바코드로 직접 등록

스프링은 스프링 컨테이너에 스프링빈을 등록하여 사용한다. 기본적으로는 싱글톤 (하나의 클래스에 하나의 객체만을 등록한후 공유)으로 등록한다. 즉, 같은 스프링 빈이면 모두 같은 인스턴스인 것이다. 이 스프링빈을 등록하는 방법에는 2가지가 있다. 1. 컴포넌트 스캔 2. 자바 코드로 직접 스프링 빈 등록 정형화된 코드의 경우 컴포넌트 스캔방식을 주로 사용한다. 정형화 되어있지 않거나, 상황에 따라 구현 클래스를 변경해야 하면 직접 스프링 빈으로 등록한다. 1. 컴포넌트 스캔 @Component 애노테이션이 있다면 스프링 빈으로 스프링 컨테이너에 객체로 자동 등록된다. @Component를 포함하는 @Controller, @Service, @Repository도 스프링 빈으로 자동 등록이된다. @Autowi..

[1]회원 관리 예제 - 백엔드 개발[테스트 코드 작성,서비스와 리포지토리]

서비스 : 핵심 비즈니스 로직 구현 리포지토리 : 데이터베이스에 접근 도메인 : 비즈니스 도메인 객체 단축키 : 작성한 코드를 별도의 메서드로 만드려면 단축키는? (메서드 추출) : Ctrl + Alt + m 테스트 파일을 쉽게 만드는 단축키는 ? : Ctrl + shift + t 게터,세터,생성자 단축키는? : alt + insert 반환형 만든는 단축키는? : ctrl + alt + v rename을 쉽게 도와주는 단축키는? shift + f6 1 . 회원 리포지토리 테스트 케이스 작성 테스트 케이스 작성 중 Assertions.assertThat에서 에러가 발생하였다. 질문 게시판에서 이유를 발견할 수 있었다. Assertion에는 import할 수 있는 2가지가 있다. 강사님께서는 assertj...

[0]프로젝트 환경설정과 스프링 웹 개발 기초

1. 프로젝트 환경 설정 ctrl + alt + s를 통해서 Reference에 들어가 gradle을 검색하고 gradle에서 intellij로 설정을 변경해준다. spring은 굉장히 방대하다. 필요한 것을 찾는 능력이 중요하다. spring.io에 들어가 project -> springboot로 @Controller public class HelloController { @GetMapping("hello") public String hello(Model model){ model.addAttribute("data","hello!"); return "hello"; // templete/hello.html을 찾아 렌더링 하기 } } 스프링 부트는 톰캣이라는 웹서버가 내장되어있다. 컨트롤러에서 문자열을 리턴..

[0]프로젝트 생성과 컨트롤러_ lombok과 H2,MockMvc가 뭐야?

인프런의 호돌맨의 요절복통 개발쇼를 구매하였다. 유튜브에서 호돌맨을 자주봤었기도 하고 스프링을 빠르게 공부하고 싶었었기 때문이다. 이 강의를 통해 공부해야할 길을 찾을 수 있기를 바란다. 강의를 듣고 따라하는 것에서 끝내는 것이 아니라 강의는 그저 길을 터주는 것이라 생각하고 모르는 것이 생기면 조사하고 공부하여 습득하고 내 지식으로 만들 예정이다. 근데 너무 생소한 개념이 많아서 김영한님 강의로 도망쳤다...김영한님 강의 빨리 듣고 이거 들을게요.. 1. 프로젝트 생성 인텔리제이에서 스프링 부트 프로젝트를 만들었다. 이름은 Durumlog -! 아무것도 하지 않은 페이지는 역시나 Error Page가 떴다. 2. 컨트롤러 생성 컨트롤러를 생성한 후에 다음과 같이 test에서도 동일한 위치에 폴더를 만들..

[7]알고리즘스터디 - 섹션7_3주차 스터디

파이썬 알고리즘 문제풀이 스터디 - 알까기 _ 섹션 7 티스토리 마크다운이 이상해서 올려놓은 깃허브 주소도 올린다. https://github.com/dumi33/TIL_TodayILearn/blob/main/220225/%EC%84%B9%EC%85%987.md GitHub - dumi33/TIL_TodayILearn: 오늘 배운 코드/내용을 정리해서 올립니다. 오늘 배운 코드/내용을 정리해서 올립니다. Contribute to dumi33/TIL_TodayILearn development by creating an account on GitHub. github.com 문제 1 - 최대점수 구하기(DFS) 내가 만든 코드 1, 2번은 잘 돌아가는데 나머지는 시간초과 def dfs(x,score, time..