Problem Solving/정렬

https://www.acmicpc.net/problem/18310 18310번: 안테나 첫째 줄에 집의 수 N이 자연수로 주어진다. (1≤N≤200,000) 둘째 줄에 N채의 집에 위치가 공백을 기준으로 구분되어 1이상 100,000이하의 자연수로 주어진다. www.acmicpc.net 안테나를 왼쪽부터 오른쪽으로 이동한다고 생각하면 처음에는 계속 거리의 합이 작아 질것이다. 이렇게 작아지는 것이 만약 집이 5개라면 3번째지점을 지나는 순간에 다시 합이 커질 것이다. 왜냐하면 3번째집을 만나기전에는 2개에 집에서 한칸씩 멀어지더라도 3개의 집에서는 한칸씩 가까워 지기에 이득이였기 때문이다. 만약 집이 짝수라면 2번쨰집을 지나고 3번째집을 도착할 때까지는 값이 같기에 2번째집의 위치가 답이다. 중앙값의 ..
https://www.acmicpc.net/problem/1431 1431번: 시리얼 번호 첫째 줄에 기타의 개수 N이 주어진다. N은 50보다 작거나 같다. 둘째 줄부터 N개의 줄에 시리얼 번호가 하나씩 주어진다. 시리얼 번호의 길이는 최대 50이고, 알파벳 대문자 또는 숫자로만 이루어 www.acmicpc.net sort의 comparator에서 조건문을 if(!=)로 하면 더 깔끔해질 수도 있다. 자릿수 합을 구하는 부분을 함수로 바꾸면 더욱 깔끔할 듯하다. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br =..
https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net import java.io.*; import java.util.*; public class Main { public static class Meeting{ Integer start; Integer end; Meeting(Integer start, Integer end){ this.start= start; this.end = end; } } public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader..
https://www.acmicpc.net/problem/2910 2910번: 빈도 정렬 첫째 줄에 메시지의 길이 N과 C가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ C ≤ 1,000,000,000) 둘째 줄에 메시지 수열이 주어진다. www.acmicpc.net 링크드해쉬맵을 이용하면 클래스를 만들 필요가 없다. import java.io.*; import java.util.*; public class Main { public static class Num{ Integer num; Integer count; Integer idx; public Num(Integer num, Integer count, Integer idx){ this.num=num; this.count=count; this.idx ..
https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다. X1, X2, ..., XN에 www.acmicpc.net import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Bu..
https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new Buf..
https://www.acmicpc.net/problem/7785 7785번: 회사에 있는 사람 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는 www.acmicpc.net import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedW..
https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net import java.io.*; import java.util.*; public class Main { public static class User{ protected String name; protected Integer age; public User(String name,Integer age){ this.name = name; this.age =age; } } public static void ma..
윤재에요
'Problem Solving/정렬' 카테고리의 글 목록