문제 1699번: 제곱수의 합 어떤 자연수 N은 그보다 작거나 같은 제곱수들의 합으로 나타낼 수 있다. 예를 들어 11=32+12+12(3개 항)이다. 이런 표현방법은 여러 가지가 될 수 있는데, 11의 경우 11=22+22+12+12+12(5개 항)도 가능하다 www.acmicpc.net 문제 풀이 자연수 N이 주어지면 해당 수를 제곱수들의 합으로 나타낼 때 항의 최소 개수를 구하는 문제이다. N에 따라서 항의 최소 개수를 비교하면 문제를 쉽게 풀 수 있다. N 항 항의 최소 개수 0 없음 0 1 1 ^ 2 1 2 1 ^ 2 + 1 ^ 2 2 3 1 ^ 2 + 1 ^ 2 + 1 ^ 2 3 4 2 ^ 2 1 5 2 ^ 2 + 1 ^ 2 2 6 2 ^ 2 + 1 ^ 2 + 1 ^ 2 3 7 2 ^ 2 + ..
문제 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 문제 풀이 다음과 같은 조건을 통해, 한번의 계산으로 연속합 중의 최대 값을 찾을 수 있다. 현재 수열 값이 앞의 값과 더한 것 보다 값이 크면 그대로 유지하고 아닐 경우, 앞의 합산 값으로 갱신한다. 말로는 잘 이해가 안되지만 문제 예시에서 최대 값을 구하는 과정을 보면 쉽게 이해할 수 있다. Origin 10 -4 3 1 5 6 -35 12 21 Round 1 10 6 Round 2 10 6 9 Round 3 10 6 9 10 Round 4 10 6 9 10 15..
문제 14002번: 가장 긴 증가하는 부분 수열 4 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 문제 풀이 이전에 다루었던 11053 가장 긴 증가하는 부분 수열의 풀이에서 각 원소들만 추가해주면 된다. 이는 메모이제이션을 통해 수열의 값의 크기에 따라 앞의 수 중 작은수가 얼만큼 있는지 확인할 수 있기 때문이다. 코드 from sys import stdin if __name__ == '__main__': n = int(stdin.readline()) nums = list..
도커에 대해 알아보기 전에 기존의 LXC(Linux Container)와 달리 많은 사람들이 도커를 사용하게 되고, 지금도 컨테이너 기반의 시스템 구축에 애용되는지 알아보기 위해 배경지식을 알아보고자 한다. Container 컨테이너는 운영체제 수준의 가상화(Operating System level virtualization)을 통해 각 컨테이너 별로 독립적으로 실행될 수 있는 환경을 제공한다. 도커가 등장하기 전에는 LXC(Linux Container)가 유명하였다. 초기에 도커는 LXC를 런타임으로 사용하는 방식을 채택하였다. 시간이 지남에 따라, 업그레이드 하면서 LXC 없이도 동작할 수 있는 버전을 제공하였다. VM Ware와 Virtual Box는 컨테이너와 달리 Hypervisor를 통해 Ge..