일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- DP
- JUnit
- 백준
- 항해플러스ai후기
- 코딩테스트
- 코테
- 다시보기
- DFS
- 트러블슈팅
- 항해솔직후기
- database
- 코딩테스트실력진단
- Spring
- SSAFY
- Union Find
- 싸피
- 항해플러스ai
- JPA
- 자바
- 코드트리
- BFS
- 유니온파인드
- 그래프
- 알고리즘
- 완전탐색
- 알고리즘기본개념
- 다익스트라
- Java
- 그리디
- SWEA
- Today
- Total
목록자바 (7)
HwangHub
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 🤔 Intuition 직관적으로 떠오른 풀이는 누적합을 이용한 슬라이딩 윈도우였다. 구간의 사이즈가 고정되어있기 때문이다. 하지만 역시나 슬라이딩 윈도우는 투포인터로도 풀 수 있다. 두 알고리즘 모두 알고리즘 자체 시간복잡도는 O(N) 일 테니 소요 시간은 비슷할 것으로 예상했다. 🔎 Algorithm & Complexity * @algorithm two pointer * @time O(N) -> 729 ms * @memory O(N) -> 38 MB * @algorithm prefix sum * @ti..
참조 변수(오브젝트) 다형성은 많이 다뤄지지만, 사실 기본형 데이터들도 다형성을 가집니다. byte => short / char => int => long => float => double 우리는 이걸 형변환이라고 알고 있죠. 하나의 타입이 여러 타입을 품을 수 있는 성질이 다형성이며, 이는 객체 간의 상속 관계 뿐만 아니라, 이와 같은 기본형의 형 변환이라는 현상도 만들어 냈습니다. (근데 중요하진 않으니 이쯤하고 넘어가죠.) 오늘 다룰 내용은 객체지향 원칙 A P.I.E 중 다형성에 대한 내용입니다. 다형성, 눈으로 확인하기 우리 모두 잘 알다시피, 참조 변수에서의 다형성은 상속 관계에서 많이 다뤄집니다. 이는 클래스 간 상속이나 인터페이스와 클래스 간의 관계에서 이용됩니다. 아래 예시를 통해 더 자..

What is Garbage Collection ? 자바를 공부하다보면 자주 마주하게 되는 "가비지 컬렉션"이라는 말. 이번 기회에 한번 제대로 알아보자. "가비지 컬렉션"이란, 말 그대로 쓰레기를 모아서 버려주는 것을 의미한다. 마치내가 방 안에서 살다 보면 처음엔 잘 쓰던 물건이더라도, 어느샌가 손도 대지 않는 물건이 존재하듯이, 프로그램도 계속 작업을 수행하다보면 끊임없이 필요 없는 데이터들이 메모리 위에 쌓여나가게 되는 것이 일반적이다. 고전적인 프로그래밍 랭귀지인 C나 C++의 경우에는 이렇게 메모리를 차지하는 데이터에 대하여 수동으로 free를 해줘야 한다. 이를 처리하지 않으면, 필요하지도 않은 데이터가 메모리에 지속적으로 공간을 차지하여 이를 활용하지 못한다 해서 "메모리 누수(memory..
유형 파악 이 문제는 2차원 배열 상의 출발지에서 목적지까지 이동시간의 최소를 구하는 문제이면서, 이동간 시간 가중치가 동일하기 때문에 전형적인 BFS 문제라고 이해할 수 있다. 아울러, 몇 개의 점을 선택하여 제거하는 경우를 세야 하므로 이 부분은 백트래킹 로직을 활용하여 풀어내 주었다. 제출 코드 구성했던 로직의 특징은, 여러 경우에서 도착지에 도달하는 시간이 도출될텐데, 그 경우 중 가장 빠른 경우에서의 시간을 구하는 것을 우선순위 큐를 활용하여 도출해줬다는 것과, 제거하려는 벽을 중복으로 선택하지 않기 위해 selected[][] 라는 배열을 운영한 것이다. 개인적으로 헤맨 부분은, 백트래킹을 통해 제거할 벽을 모두 선택했을 때 bfs를 수행하기 위해 관련 변수들을 초기화해줘야 한다는 것이다. 이..
jdbc 프로젝트를 진행하다가 위와 같은 이슈를 마주했다. 문제 원인을 알아보니 문제의 코드는 아래 부분이였다. Statement stmt = conn.createStatement(); for (String ssn : ssnList) { sb = new StringBuilder(); String sql = sb.append(baseDeleteClause).append("ssn = ").append(ssn).append(";").toString(); stmt.executeQuery(sql); } 위 코드 중 .executeQuery()메서드가 문제다. 한번 이번 기회에 살짝 알아보자. 알아야 할 것 jdbc에서 지원하는 실행 메서드는 execute() , executeQuery() , executeUpda..

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 문제 해석 이 문제는 지난번에 풀었던 "사각형 채우기"와 같은 유형의 문제로써, 점화식을 세울 때 조금 더 생각을 해줘야 하는 문제이다. 기본적으로 n번째 자리까지 타일을 까는 경우의 수는 n-1, n-2 번째까지의 타일을 까는 경우의 수 들을 이용하여 도출해낼 수 있다는 아이디어가 DP의 기본 흐름이다.(큰 문제는 작은 문제로 쪼개어 생각한다.) 이렇게 볼 때, 1칸짜리 그리고 2칸짜리를 이용하여 f(n) = 2 * f(n-1) + 3 * f(n-2) 까지는 쉽게 구해질 것이다. 이게 만약 안보인다면 ..
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 문제 해석 1. n층 높이의 계단을 오르는 경우의 수를 구하는 문제이다. -> 여기까지만 보면 아직은 어떤 알고리즘을 쓸지 확신하기 어렵다. 2. 2개 또는 3개 계단 단위로만 오를 수 있다고 한다. -> 일정 패턴으로만 진행되는 것을 알 수 있다. 이렇게 정형화된 패턴을 배치하는 경우의 수를 구하는 문제는 다이나믹 프로그래밍의 가장 대표적인 유형이다. 문제에서 요구하는 답은 n개의 계단을 오르는 경우의 수 이므로 f(n) = n번째 계단을 오르는 경우의 수 일 것이다. n번째 계단은 n-2번째 계단 또..