본문 바로가기
  • 개발하는 곰돌이

Comparable3

[Kotlin] 백준 21773 : 가희와 프로세스 1 문제 링크 21773번: 가희와 프로세스 1 1초일 때 부터 4초일 때 상황을 그림으로 나타내면 아래와 같습니다. 아래 그림에서 주황색은 특정 시점에 스케쥴러가 선택한 프로세스를 의미합니다. www.acmicpc.net 문제 해설 우선순위 큐와 Comparable 인터페이스를 구현한 클래스를 사용하여 답을 찾아야 한다. 문제를 해결하는 과정은 다음과 같다. 각 프로세스의 우선순위가 같다면 id가 낮은 순으로, 다르다면 우선순위를 높은 순으로 정렬하도록 Comparable 인터페이스를 구현한 클래스를 선언한다. 우선순위 큐에 입력을 토대로 생성한 프로세스 객체를 모두 삽입한다. 우선순위 큐의 Root 요소를 꺼내어 다음 연산을 수행한다. null이라면(= 스케줄러가 비어있다면) 반복문을 종료한다. 꺼낸 프.. 2023. 1. 10.
[Kotlin] 백준 25325 : 학생 인기도 측정 문제 링크 25325번: 학생 인기도 측정 학생 이름이 공백으로 구분된 문자열 A가 주어진다. 문자열 A에는 중복된 학생 이름이 존재하지 않는다. 학생 이름은 알파벳 소문자로 이루어져 있다. 각 학생이 좋아하는 학생의 학생 이름 목록 www.acmicpc.net 문제 해설 맵과 정렬을 이용하여 풀 수 있는 문제다. 풀이 과정은 다음과 같다. 맵에는 Key로 학생의 이름을, Value로 학생들의 인기도를 저장한다. 학생 이름과 인기도를 필드로 갖는 Student 클래스에 Comparable 인터페이스를 구현하여 인기도는 내림차순, 인기도가 같으면 이름 기준 오름차순으로 정렬할 수 있게 한다. 인기도 저장이 끝난 이후에는 각 학생 이름과 인기도로 Student 객체를 생성하여 별도의 리스트나 배열에 저장한다.. 2022. 12. 25.
Kotlin에서 두 객체의 비교(CompareTo) 개요 Java에서는 두 객체를 비교하려면 Comparable 인터페이스의 CompareTo() 메소드를 구현하여 객체를 비교해야 했다. Kotlin에서도 마찬가지로 두 객체를 비교하려면 Comparable 인터페이스의 CompareTo() 메소드를 구현해야 하는것은 동일하지만 이 과정만 수행해놓으면 훨씬 직관적으로 두 객체를 비교할 수 있다. 이에 대해 알아보도록 하자. Comparable 인터페이스의 CompareTo() 메소드는 현재 객체와 파라미터로 받은 객체 사이의 특정 연산을 통해 결과가 양수이면 현재 객체가 더 크고, 결과가 음수이면 현재 객체가 더 작다고 판별한다. Java에서의 두 객체 비교 Java에서 두 객체를 비교하려면 객체의 클래스에서 Comparable 인터페이스의 CompareT.. 2022. 12. 9.