본문 바로가기

분류 전체보기161

백트래킹(backtracking) 기법의 이해 1. 백트래킹(Backtracking) 기법 - 제약 조건 만족 문제에서 해를 찾기 위한 전략 - 후보군에 제약조건을 체크하고 조건이 맞지 않으면, 그 다음 후보군으로 바로 이동하는 과정을 통해 해를 찾는 전략 (일일이 모든 경우를 체크하지 않고, 조건에 맞지 않으면 세부검증 없이 backtracking 과정을 수행 이해가 간다해도 말로 표현하기가 어렵다..) - 모든 경우의 수(후보군)는 상태공간트리(State Space Tree)로 표현한다 - 각 후보군을 DFS 방식으로 확인 - SST를 탐색하며, 제약조건을 체크하고 이를 만족하지 못할 경우, 다음 후보군으로 이동 - Promising(조건체크): 해당하는 경우가 제약 조건을 만족하는지 검사하는 기법 - Pruning(가지치기): 조건과 맞지 않으.. 2020. 10. 13.
1302-베스트셀러 (python) sold_books = dict() bestseller = "" n = int(input()) for _ in range(n): max = 0 title = input() if title not in sold_books: sold_books[title] = 1 else: sold_books[title] += 1 for k, v in sold_books.items(): if v > max: max = v bestseller = k elif v == max: if bestseller > k: bestseller = k print(bestseller) 2020. 10. 13.
1568-새 (python) k = 1 result = 0 n = int(input()) while n > 0: if n - k >= 0: n = n - k k += 1 result += 1 else: k = 1 print(result) 2020. 10. 13.
[Spring] 스프링 부트 시작하기 (Spring Initializr 이용) 1. Spring Initializr 사이트 방문 2. 메타 정보 및 빌드 환경 설정 빌드 도구를 선택한다 (Maven / Gradle) -> 최근엔 gradle을 더 많이 사용하는 추세 언어를 선택한다 (Java / Kotlin / Groovy) 버전을 선택한다 -> 개인적으로 안정화된 버전을 선택하는 걸 선호 Group: 내 프로젝트의 최상위 네임스페이스로, 중복 방지를 위해 도메인의 역순으로 사용 Artifact: 해당 프로젝트의 이름 위의 두 정보(Group과 Artifact)를 입력하고 나면, 아래 Name과 Package name이 자동으로 생성된다 프로젝트 생성 후에도 수정이 가능하다 Dependencies: 스프링 부트를 사용하는 가장 큰 이유 중 하나로 추가/삭제가 편리하다! 오른쪽 Ad.. 2020. 10. 13.