오늘 한 일
알고리즘
스프링
- myBatis 활용 게시판 페이징 처리 구현
- PageNavigation 클래스 사용
public class PageNavigation {
private int startPage;
private int endPage;
private boolean startRange;
private boolean endRange;
private int totalCount;
private int totalPageCount;
private int currentPage;
private int countPerPage;
int itemPerPage = 10;
int maxDisplayNavCnt = 10;
public PageNavigation(int currentPage, int totalCount) {
makePageNavigation(currentPage, totalCount);
}
private void makePageNavigation(int currentPage, int totalCount) {
this.setCurrentPage(currentPage);
this.setTotalCount(totalCount);
this.setCountPerPage(itemPerPage);
int totalPageCount = (totalCount - 1) / itemPerPage + 1;
this.setTotalPageCount(totalPageCount);
this.setStartPage((currentPage - 1) / itemPerPage * itemPerPage + 1);
this.setEndPage(this.getStartPage() + maxDisplayNavCnt - 1);
if(totalPageCount < this.getEndPage()) {
this.setEndPage(totalPageCount);
}
this.setStartRange(currentPage <= itemPerPage);
boolean endRange = (totalPageCount - 1) / itemPerPage * itemPerPage < currentPage ;
this.setEndRange(endRange);
}
}
느낀 점
- 파이프 옮기기 문제를 DP로 풀면 훨씬 실행시간이 줄어드는데, 아직 DP로 푸는 방법은 생각해내지 못했다.
- 알고리즘은 여전히 DP, 그래프 관련 문제에 많이 약하다. 개념 다시 정립하고 이 개념들 위주로 문제를 풀어봐야겠다.
- PagiNation 구현은 혼자 안보고 구현할 수 있을 정도로 한번 다시 구현을 해 볼 필요가 있다.
기타
- 평일에 커피를 안마셨더니 내내 집중이 어려웠었다. 커피를 완전히 끊지는 못하겠고 점심때까지만 마시고 이후엔 마시지 않는 방향으로 가야겠다.
- TIL 작성을 오늘부터 다시 시작했는데 생각보다 내가 뭘 했는지 자세하게 적는게 쉽지가 않다. 정리를 하고 글로 자세하게 적어두고 싶었는데 앞으로 정리와 작성 습관이 꾸준하게 들여야겠다.