전체 글52 [이론 노트]단순조합과 단순재귀 2023. 6. 19. [알고리즘 문제 해결 전략] 20장 문자열 짚더미에서 바늘찾기 주어진 긴 '짚더미(haystack)' 문자열 H가 '바늘(needle)' 문자열 N을 부분 문자열로 포함하는지 확인하고, 포함한다면 N과 일치하는 부분 문자열의 시작 위치를 찾는 문제를 문자열 검색 문제라고 한다. 예를 들어 H="avava"는 N="ava"를 두 번 포함하며, 각각의 시작 위치는 0,2이다. import java.util.ArrayList; import java.util.List; public class NaiveSearch { // '짚더미'H의 부분 문자열로 '바늘'N이 출현하는 시작 위치들을 모두 반환한다. public static List naiveSearch(String H, String N) { List ret = new ArrayList(); // 모든.. 2023. 6. 16. [Git]Git Flow와 GitHub Flow 왜? 많은 사람들과 일을 할 때, 새로운 코드를 통합하기 위해서는 형상관리 flow의 이해가 필요하다. 크게는 Git Flow와 GitHub Flow를 많이 쓰기 때문에 이 두 개에 대해 짤막하게 알아보자. Git Flow Git Flow는 Vincent Driessen 이 제안한 브랜치 관리 전략으로, 여러 개발자가 같은 프로젝트를 진행할 때 효과적으로 관리하도록 도와준다. Git Flow에서는 브랜치를 다음과 같이 5가지 유형으로 분류한다. Master(main): 항상 준비된 배포 가능한 상태의 브랜치이다. Develop: 개발자들이 일하는 브랜치, 여기서 기능을 추가하고 버그를 수정한다. Feature: 개별 기능 개발을 위한 브랜치, Develop에서 분기하고 Develop에 병합한다. Rele.. 2023. 6. 14. [BOJ]4358 생태학 이 문제를 보고 Collection Framework을 사용하기 좋은 문제라고 생각했다. 중복 -> Set, 고유 이름과 값 -> Map, 지저분한 text문 -> List가 떠올랐기 때문이다. 계획은 일단 List로 값을 받는다 그 다음 Set으로 중복을 없애고 정렬하여 List로 바꾼다. 이로써 두 List를 서로 비교할 수 있는 것이다. Map에서 중복이 있는(수가 많은) List만큼을 돌면서 .containsKey Map의 이 메소드를 활용하여 평균을 구한다. Set으로 중복을 없애고 정렬한 List인 sortedList만큼 순회하여 map의 값을 뽑아낸다. 여기서 나는 map만큼 순회해도 된다생각했지만 for each문에서는 힘듦을 깨닫고 이렇게 하였다(map은 한층 벗겨내기가 이것보다 까다롭다.. 2023. 6. 9. 이전 1 ··· 9 10 11 12 13 다음