목록알고리즘(백준)/정렬 (5)
IT 기획의 길

알고리즘 설계 1. 나이와 이름을 갖는 Person 객체를 만든다 2. Comparator를 이용하여 Person 객체의 데이터를 나이 오름차순으로 정렬한다 3. 나이가 같으면 가입한 순으로 정렬하라는데 이 과정은 필요없다 추가적인 정렬과정을 안가쳐도 자연스럽게 입력한 데이터 순서대로 데이터가 저장이 되기 때문이다 import java.util.*; class Person { int age; String name; public Person(int age,String name){ this.age=age; this.name=name; } public String toString() { return age+" "+name; } } public class 나이순정렬 { public static void main..

알고리즘 설계 1. A배열을 오름차순해서 정렬하고 2. B배열을 내림차순으로 정렬해서 3. A배열의 가장 큰값과 B배열의 가장 작은값을 곱하고 A배열의 그 다음 큰값과 B배열의 그 다음 작은값을 곱하는식으로 계산을하면 S는 최솟값이 된다 import java.util.*; public class Main { public static void main(String[] args) { Scanner scan=new Scanner(System.in); int N=scan.nextInt(); int sum=0; ArrayList A=new ArrayList(); ArrayList B=new ArrayList(); for(int i=0;i

알고리즘 설계 1.x좌표 y좌표니까 이차원 배열로 접근한다 2. 정렬 기준이 (1) x좌표로 오름차순 정렬 (2) x좌표가 같으면 y좌표 오름차순 정렬 2개이므로 comparator를 활용한다 import java.util.Scanner; import java.util.*; import java.util.Arrays; public class 좌표정렬하기 { public static void main(String[] args) { Scanner scan=new Scanner(System.in); int num=scan.nextInt(); int [][] pos=new int[num][2]; for(int i=0;i

알고리즘 설계: 1. 같은 단어가 여러 번 입력된 경우 한번만 출력되게 하려면 중복을 허용하지않는 set을 사용한다 2. 출력을 할때 길이 순으로 오름차순 정렬을 한다 3. 만약 길이가 같은 문자라면 사전 순으로 출력한다 import java.util.*; public class Main { public static void main(String[] args) { Scanner scan=new Scanner(System.in); int n=scan.nextInt(); HashSet str1=new HashSet(); for(int i=0;is2.length()) //문자 길이로 정렬 return 1; else if(s1.length()

알고리즘 설계: 1. 먼저 사람의 수를 입력받는다. 2. 각 사람의 인출 시간과 각 사람의 앞사람의 인출시간까지 고려한 인출시간을 구하는 배열을 정의한다 3. 적게 걸리는 사람부터 줄 서는게 각 사람의 앞사람의 인출시간까지 고려한 인출시간을 최소로 만든다 4. 각 사람의 인출시간을 입력으로 받고 그 값을 배열에 담아 오름차순으로 정렬한뒤 그 값에 따라 각 사람의 앞사람의 인출시간까지 고려한 총 인출시간을 구한다 import java.util.*; public class ATM { public static void main(String[] args) { Scanner scan=new Scanner(System.in); int n=scan.nextInt(); int time[]=new int[n]; //각 ..