목록지구정복과정 (466)
지구정복
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객체 이용해서 풀었는데 시간이 엄청 오래 걸렸다. 단순하게 생각해보니깐 그냥 사용자객체 만들지 않고 익명..
https://www.acmicpc.net/problem/11050 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net -문제해설 그냥 조합을 구하면 되는 문제이다. n개 중에서 순서에 상관없이 k개를 뽑을 경우의 수. 수학적으로 조합 식에 해당되는 분자를 구하고 조합 식에 해당되는 분모를 구한 뒤 두 개를 나눠도 되지만 예전에 조합을 다이나믹프로그래밍을 이용해서 구한 적이 있어서 dp로 풀었다. 1C0 =1 1C1 =1 2C0 =1 2C1 =2 2C2 =1 3C0 =1 3C1 =3 3C2 =3 3C3 =1 4C0 =1 4C1 =4 4C2 =6 4C3 =4 4C4 =1 5C0 =1 5C1 ..