210502_Sun TIL

Changhwan Son·2021년 5월 2일
0

TIL

목록 보기
1/4
post-thumbnail

오늘 한 일

알고리즘

  • BOJ 17070 파이프 옮기기1

스프링

  • 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 작성을 오늘부터 다시 시작했는데 생각보다 내가 뭘 했는지 자세하게 적는게 쉽지가 않다. 정리를 하고 글로 자세하게 적어두고 싶었는데 앞으로 정리와 작성 습관이 꾸준하게 들여야겠다.
profile
공부한 것을 글과 코드로 기록합니다.

0개의 댓글