목록데이터 엔지니어링 정복/Algorithm (159)
지구정복
https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net -문제해설 돈을 인출하는데 오래 걸리는 사람이 앞쪽에 오게되면 뒤에 있는 사람은 그 만큼 더 많이 기다려야한다. 만일 적게 걸리는 사람이 앞에 오면 뒤에 있는 사람은 덜 기다리게 되므로 p배열을 오름차순으로 정렬한 뒤 각 사람이 기다린 시간인 tmp를 구하고 전체 기다리게 되는 시간이 sum에 tmp값을 더해주면 된다. -자바 package math; import java.io.BufferedReader; import java..
https://www.acmicpc.net/problem/9461 9461번: 파도반 수열 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 www.acmicpc.net -문제해설 기본적인 다이나믹 프로그래밍 문제이다. 바텀업방식으로 풀면 금방 풀 수 있다. 이때 dp 배열은 long타입으로 선언해야된다. 점화식은 다음과 같다. dp[n] = dp[n-3] + dp[n-2] (단, n이 1 또는 2일 때는 dp[1] = 1, dp[2] = 1 ) -자바 package ex; import java.io.BufferedReader; import java.io.IOExcep..
https://www.acmicpc.net/problem/9375 9375번: 패션왕 신해빈 첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다. www.acmicpc.net -문제해설 옷의 종류만 중요하고 옷이 무엇인지는 중요하지 않다. HashMap을 이용해서 동일한 옷의 종류면 그냥 옷의 개수를 1씩 올리고 없으면 새로운 옷의 종류를 키로 삽입하고 값은 1로 설정한다. 그리고 아래 공식으로 출력값을 만든다. sum = (첫 번째 종류의 옷 개수 + 1) * (두 번째 종류..
https://www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net -문제해설 풀다가 어려워서 이 분의 코드를 참고했다. https://st-lab.tistory.com/227 먼저 문제와 나와있는 대로 정사각형에 모든 값이 1이 아니거나 0이 아니면 현재 정사각형을 2등분해서 각 사분면에 대해서 다시 전체 값이 1인지 0인지를 검사한다. 이때 전체값이 1이거나 0이면 재귀함수를 빠져나오고 아닐 경우 재귀함수를 계속 호출한다. 아직 분할..