1편을 보지 않으셨다면 보고 오시는 것을 추천드립니다! 대용량 파일 다운로드 구현하기 - 1편안녕하세요 오랜만입니다. 바빠서 간만에 돌아왔습니다. 오늘도 뜬금없이 새로운 주제로 찾아왔습니다. “대용량 파일 다운로드를 구현하려면 어떻게 해야 할까?” 얼마 전 친구가 던진 질문입interlude.tistory.com 그럼, 이제 코드를 작성해 봅시다! 최소한의 기능으로 구현하기간단하게 다운로드 함수를 구현해 봤습니다. 한 줄씩 살펴봅시다!public boolean download(String urlStr, Path path, int byteKB) throws IOException { HttpURLConnection conn = null; try { conn = (HttpURLConn..
얼마전 키 순서라는 문제를 풀었습니다. 이 문제를 풀며 발견한 자바의 BitSet 클래스에 대한 이야기를 해보려고 합니다.이 문제에 관심이 없으신 분들은 바로 비트마스킹 목차로 이동해주시면 되겠습니다.관심이 있는 분들은 한 번 풀어보고 보시면 좋을 것 같습니다. 키 순서문제를 간단히 설명하면 다음과 같습니다.최대 N=500까지의 노드(학생)가 있을 때, 키 비교 결과를 가지고 각 학생의 ‘키 순서’를 정확히 알 수 있는 학생의 수를 구하는 문제.이 문제는 플로이드 워셜로 분류되어 있으며 대부분의 블로그들은 이를 플로이드 워셜로 풀이하고 있습니다. 그러나 저는 플로이드 워셜에 익숙치 않아 DFS를 먼저 떠올렸습니다. DFS로 각 노드에 대해 후손(자신보다 키가 작은 노드들의 집합)과 조상(자기보다 키가 큰..
요즘 너무 바빠서 이번에도 가벼운 주제로 가져와 봤습니다.사실 SOLID의 O를 이어가는 게 가장 이상적이었겠지만, 시간이 부족한 관계로…한 달 전쯤같이 공부하는 친구가 Comparable과 Comparator가 어렵고 헷갈린다고 하여 설명해 주었습니다.그 뒤로도 주변에서 코딩테스트 언어를 선택할 때 “자바 뭐 Comparator…? 그거 복잡하잖아”와 같은 말들을 듣게 되었습니다.그래서 Comparable과 Comparator가 어렵지 않다는 주제로 블로그 작성을 기획하게 되었습니다. 언제 필요한데?자바는 Arrays.sort()나 Collections.sort()같은 정렬 기능을 제공합니다. 그래서 우리는 다음처럼 int 배열과 Integer 리스트를 정렬할 수 있습니다.// 편의상 원소 삽입 및 ..