Comparable
-
[백준 1302번] 베스트셀러(Java 풀이)Algorithm/정렬(Sort) 2020. 2. 15. 15:49
백준알고리즘 1302번 : 베스트셀러 기존에 풀었던 문제와 조금은 달랐던 것이, sort를 할 숫자와 문자를 주어주었던 반면, 이번엔 직접 받아서 어느 책이 몇개 팔렸는지 세고, 이를 정렬하여 출력하여야 했기 때문이다. 그래서 solved.ac에서 silver 4레벨로 책정된 것인지. 물론 체감은 크지 않았다. 책의 이름(String)과 판매된 갯수(int)를 field로 갖는 book 객체를 선언하고, Comparable interface를 implements하여 compareTo method를 override하는 것 까지는 일치하다. 차이는 book 객체를 parameter로 받는 ArrayList에 book 객체를 담을 때이다. ArrayList내에 담겨 있는 book 객체들의 String fiel..
-
[백준 10825번] 국영수 (Java 풀이)Algorithm/정렬(Sort) 2020. 2. 14. 19:28
백준알고리즘 10825번 : 국영수 정렬 공부를 하기에 아주 좋은 문제라고 생각한다. 국어 점수는 내림차순, 국어 점수가 같다면, 영어 점수는 오름차순, 영어 점수가 같다면, 수학 점수는 내림차순, 수학 점수도 같다면, 이름을 오름차순으로 정렬하는 문제이다. 국어, 영어, 수학 점수와 이름을 field로 갖는 객체를 생성하고, 해당 객체가 Comparable을 implements하도록 한다. 그리고 CompareTo method를 override하여 조건에 맞게 정렬하도록 만들어준다. 이름을 오름차순으로 정렬할 때는 아스키 코드순으로 정렬하는 것으로 명시가 되어있기 때문에, 단순히 CharAt method를 이용하여 sort하였다. 풀이 과정 1. 객체를 생성하여 이름(String), 국(int), 영(..
-
[백준 5635번] 생일 (Java 풀이)Algorithm/기타 2020. 2. 5. 22:45
백준알고리즘 5635번 : 생일 나이가 많은 사람부터 순서대로 정렬하는 문제이다. 태어난 연도, 월, 일 세 번을 비교해야 하기 때문에 단순 정렬이 아닌 생년월일과 이름을 필드로 갖는 객체를 만들고, 이 object에 Comparable을 구현(Implements)한다. Comparable interface안에는 int compareTo(T a)라는 단 하나의 interface method만 존재한다. 해당 method는 리턴값을 3가지로 분류하고 있는데, 이는 다음과 같다. 1. parameter보다 더 작은 경우 음수 return. 2. parameter보다 더 큰 경우 양수 return. 3. parameter와 같은 경우 0 return. Birthday라고 명명한 객체안에서 어떤 필드 값을 우선..