본문 바로가기
반응형
SMALL

전체 글118

[JAVA] String vs StringBuilder 흔히 String 대신 StringBuilder를 사용하는 것이 더 좋다고 말한다. 그 이유는 무엇일까? 먼저 String str1 = "A"; 식을 보자. 이렇게 하면 힙영역에는 "A" 라는 객체가 생성되고, str1은 스택 영역에 생성된 후 "A" 라는 객체를 참조하고 있다. 여기에서 만약 "B" 라는 문자열을 더해본다면? str1 = str1 + "B"; 단순히 상상하기로는 힙 영역에 "AB" 가 새로 생성될 것 같지만 그렇지 않다. 새로 "B" 라는 객체가 생성되고 이 두개를 합친 "AB"가 생기게 된다. 그리고 str1은 "AB" 객체를 가리킨다. 그러면 힙 영역에는 이제 아무도 참조하지 않는 "A"와 "B" 객체가 남아있고 가비지 컬렉션에 의해 사라질 때까지 기다려야한다. 만약 이러한 연산이 .. 2023. 7. 5.
백준 11650: 좌표 정렬하기 - 람다식을 이용하여 Arrays.sort() 확장하기 이차원 배열을 어떤 식으로 사용해야하나 고민을 하다가 정 모르겠어서 검색을 해보았다. 그 결과 이 문제는 Arrays.sort() 의 내부 동작원리를 알고, 그것을 확장하여 풀면 되는 문제임을 알았다. 위의 자바 API 에 나와있듯이 sort() 는 두 가지의 인자를 받을 수 있다. 첫번째는 제너릭타입의 객체배열(T[]), 두번째는 Comparator 2023. 6. 29.
백준 2751번 : 수 정렬하기2 - 시간초과 문제해결 - Collections.sort() 사용하기 수의 개수 N이 범위가 1부터 100만까지 굉장히 크므로, 처음에는 당연히 가장 빠른 '퀵정렬'을 사용하면 되겠다고 생각했다. 하지만, 내가 잊고 있었던 한 가지 사실... 최악의 경우 퀵 정렬의 시간 복잡도는 Θ(n^2) 이라는 점. Java8 기준으로 Arrays.sort()는 퀵 정렬을 사용하므로 이 메소드를 사용하면 안된다. 그렇다면 ?? ## Collections.sort() 를 이용해보자. - 합병 및 삽입정렬 알고리즘을 사용한다. (Tim 정렬) 합병정렬의 경우, 최선/최악 모두 O(nlogn) 을 보장하고, 삽입정렬의 경우, 최선 O(n), 최악 O(n^2) 이다. 그리고 두 정렬 모두 안정정렬(stable sort) 이다. import java.io.BufferedReader; impor.. 2023. 6. 29.
[spring] 책 목록 구현 + 제목으로 검색 list0.jsp DOCTYPE html> div.container {width:900px; margin: 50px auto;} thead th {background-color: #eee;} table {border-collapse: collapse; width:100%;} td,th{padding 4px; border: 1px solid lightgray;} td {text-align: center;} input{padding:5px; font-size:10pt;} button {margin:10px; padding:0.4em 2em;} tr[data-url]:hover {background-color: #ffb; cursor:pointer;} 책 목록 이름 조회 id 제목 저자 출판사 카테고리 가격 .. 2023. 5. 22.
반응형
LIST