목록데이터 엔지니어링 정복/Algorithm (159)
지구정복
package sort; import java.util.Arrays; public class SortExam { //버블정렬 static int[] bubble( int[] arr ) { int len = arr.length; int tmp; for( int i=0; i
https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net -문제해설 단순히 정렬하는 문제이지만 그냥 Arrays.sort 사용하고 출력하면 시간초과가 나온다. Arrays.sort를 사용하려면 입력값 저장하는 배열을 Integer타입으로 사용해야 되고 출력할 때 StringBuffer나 StringBuilder로 출력값을 만들고 출력해야지 시간초과가 나오지 않는다. 이때 Integer타입으로 하는 이유는 Arrays.sort( Object[..
https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net -문제해설 맨 처음에 규칙을 찾아서 규칙에 맞게 구현해보려고 했으나 복잡해서 실패했다... 그러다 아래 블로그의 글을 확인하고 그냥 666부터 10000까지 반복문 돌다가 "666"포함되어 있는 수가 있으면 그 수를 배열에 저장하든지 그냥 바로 출력하든지 하면 되는 것을 알게되었다...! 아직 갈길이 멀다 ㅠㅠㅠ 블고그 참고(정리를 진짜 잘해놓으셨다) : https://st-lab.tistory..
https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net -문제해설 처음에 중복제거하고 데이터 추가하려고 HashSet도 사용하고 일일이 이중 반복문 돌면서 길이짧은 거 비교하고 같으면 사전순 비교하고 했는데 너무 비효율적이고 하드코딩이라 노답이었다.. 예전에 사용자객체 정렬 배웠던 기억이 있어서 처음에 사용자 객체만들고 Comparator객체 이용해서 풀었는데 시간이 엄청 오래 걸렸다. 단순하게 생각해보니깐 그냥 사용자객체 만들지 않고 익명..