그리디 2

[백준, BOJ] 1744 - 수 묶기 (C++)

안녕하세요! 오늘은 BOJ 1744 - 수 묶기 문제를 풀어볼게요. 문제를 읽어보면, 길이가 N인 수열에서 위치에 상관없이 두 수를 묶을 수 있고, 묶은 두 수는 곱해서 더한다고 해요.자기 자신을 묶을 수는 없고, 수열의 모든 수는 단 한 번만 묶거나, 묶지 않아야 하고, 이렇게 각 수를 적절히 묶었을 때 합이 최대가 될 때의 합을 구하고 싶대요.수열의 크기 N은 50 이하의 자연수고, 수열의 수가 -1000부터 1000까지니까 아무리 최대한 큰 수끼리 묶어서 더한다고 해도 1000 * 1000 * 25 = 25,000,000 이니까, 정수형 범위 안에 들어옴이 보장되어 있어요. 접근  먼저 문제에서 준 예시부터 살펴볼게요.수열 {0. 1. 2. 4. 3. 5}에서 그냥 더하면 0+1+4+3+5 = 15..

[백준, BOJ] 11399 - ATM (C++)

안녕하세요! 오늘은 BOJ 11399 - ATM 문제를 풀어볼게요. 문제를 읽어보면, 이 문제는 각 사람이 돈을 인출하는 데 필요한 시간의 합의 최솟값을 구하는 문제예요. 접근 문제에 있는 예시를 보고 접근해 볼게요. 첫 번째 예시에서는 [1, 2, 3, 4, 5] 순서로 줄을 섰어요.맨 처음 사람이 1번 사람이니, 3분이 필요해서 뒷사람 모두가 3분이 누적돼요. 두 번째 예시에서는 [2, 5, 1, 4, 3] 순서로 줄을 섰어요.맨 처음 사람이 2번 사람이니, 1분이 필요해서 뒷사람 모두가 1분을 누적돼요.여기에서 최종적으로 걸리는 시간의 합이 사람들이 줄을 서는 순서에 따라 달라짐을 알 수 있어요. 첫 번째 사람에 대해서만 언급했지만, 두 번째 사람도 시간이 짧게 걸리는 사람이 와야 두 번째 사람부터..