전체 글

· Java
HashMap의 데이터를 value값으로 정렬하기1. List 만들기HashMap을 정렬하기 위해선 다음과 같이 entrySet()으로 변환시킨 뒤, List에 넣어야한다.Map map = new HashMap();List> entries = new ArrayList(map.entrySet());이때 List의 Generic에는 Map.Entry 객체가 들어가야 한다.ArrayList 생성자로 entrySet을 넣어주면 쉽게 List를 만들 수 있다.2. sort()메소드로 정렬하기sort() 메소드의 매개변수로 Comparator 객체를 넣어주면 된다.Map map = new HashMap();List> entries = new ArrayList(map.entrySet());entries.sort((e..
지원배경대학생활 내내 그냥 학과에서 정해주는 공부만 따라가기 바뻤던것 같다. 그러다 보니 해본 외부활동은 전무했고 다양한 활동을 통해 스펙을 착실하게 쌓아가는 동기들에 비해 뒤쳐진다는 생각이 들었다. 진로는 백엔드 개발자로 정했지만 학교 전공시간에는 백엔드를 가르쳐주는 강의는 거의 없었고 해본거라곤 전공 프로젝트 시간에 야매로 해본게 전부였다.  그렇게 4학년 1학기를 다니다가 급격하게 현타가 몰려와 휴학해서 제대로 된 공부를 해보자고 마음먹었다.처음엔 프로그래머스에서 문제를 풀며 코딩테스트를 공부하고 인프런의 김영한님 강의를 들으며 스프링을 공부했지만 뭔가 부족하다는 생각이 들었고 좋은 교육과 함께 프로젝트경험도 쌓을 수 있는 부트캠프를 찾기 시작했다.찾다가 발견한 것이 프로그래머스 데브코스였다.  평..
그리디 (Greedy) 알고리즘이란?그리디(Greedy)는 사전적으로 '탐욕적인'이라는 뜻이다.그리디 알고리즘은 말 그대로 탐욕적인 알고리즘이다.  그리디 알고리즘은 현재 상황에서 가장 최적의 해를 선택을 하며 선택을 번복하지 않는다.이러한 특성을 가지고 지역 최적해를 추구한다고 이야기 하기도 한다.이렇게 선택을 반복해 하나의 문제를 푸는 알고리즘이다. 하지만 그리디 알고리즘을 모든 상황에서 적용가능한 것은 아니다. 현재 상황의 최적의 해가 전체 상황의 최적의 해를 보장하는 것은 아니기 때문이다.  그렇다면 해당 문제가 그리디 알고리즘으로 해결이 가능한지 어떻게 알 수 있을까?그리디 알고리즘으로 문제를 해결하기 위해선 다음의 두 가지 조건을 만족해야한다.1. 최적 부분 구조: 부분해를 구하는 과정이 최적..
동적 계획법(Dynamic Programming)이란?동적 계획법이란 전체 문제를 한 번에 해결하는 것이 아니라 작은 부분 문제들을 해결하고 이를 활용하여 전체 문제를 해결하는 방법이다.하지만 동적 계획법은 작은 부분 문제들을 통해 전체 문제를 해결한다고 해도 반드시 효율적인 것은 아니다.동적 계획법을 효율적으로 사용하기 위해선 다음의 두 가지 조건을 만족해야 한다.1. 큰 문제를 작은 문제로 나누었을 때 동일한 작은 문제가 반복적으로 등장해야 한다.2. 큰 문제의 해결책은 작은 문제의 해결책의 합으로 구할 수 있어야 한다. 어떠한 문제를 다음과 같이 작은 문제로 나누었다고 해보자.A, B, C, D의 작은 문제로 하나의 전체 문제를 푼다고 했을 때, 이 경우는 동일한 작은 문제가 반복적으로 등장하지 않..
jaehee1113
나의 개발 발자취