본문 바로가기

Comparator

백준 S5 11651 : 좌표 정렬하기 2 🅾️ [문제] 2차원 평면 위의 점 N개가 주어진다. 좌표를 y좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net [풀이] import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedRead.. 더보기
프로그래머스 Lv.1 : 최소직사각형 🅾️ [문제] 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다. 아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다. 1 60 50 2 30 70 3 60 30 4 80 40 가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑으로 모든 명함들을 수납할 수 있습니다. 이때의 지갑 크기는 4000(=80 x.. 더보기
프로그래머스 Lv.2 : 가장 큰 수 🅾️ [문제] 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이] import java.util.*; .. 더보기
Java : Comparator Comparator 활용을 통해 커스텀 정렬을 하는 것은 유용하다. 단, 기본형은 커스텀 정렬이 불가능하다. 물론, 아예 불가능한 것은 아닌 것이.. List 등으로 데이터를 넘긴 뒤 List.sort(...);는 가능하다. 코딩테스트에서 유용하게 사용할 수 있는 Comparator을 ide 없이 사용할 수 있도록 연습을 해보려고 한다..! 1. Arrays.sort()로 커스텀 정렬을 하는 경우 임의의 배열 (기본형 X) 혹은 다차원 배열 등을 정렬하는 경우 쓸 수 있다. People[] people=new People[100]; // People이라는 임의의 class가 존재한다고 가정 people=...; Arrays.sort(people, new Comparator() { @Override pub.. 더보기
백준 S5 1427 : 소트인사이드 🅾️ [문제] 배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자. 1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net [풀이] import java.io.*; import java.util.*; public class P1427 { public static void main(String[] args) throws IOException { BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); String input=br.readLine(); String[] arr=input.split("");.. 더보기
백준 S5 10814 : 나이순 정렬 🅾️ [문제] 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오. 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net [풀이] import java.io.*; import java.util.*; class Person { int age; String name; public Person(int i, String s) { this.age=i; this.name=s; } } public .. 더보기