전체 글 147

[백준] 보석 도둑 (python)

출처 : https://www.acmicpc.net/problem/1202 1202번: 보석 도둑 첫째 줄에 N과 K가 주어진다. (1 ≤ N, K ≤ 300,000) 다음 N개 줄에는 각 보석의 정보 Mi와 Vi가 주어진다. (0 ≤ Mi, Vi ≤ 1,000,000) 다음 K개 줄에는 가방에 담을 수 있는 최대 무게 Ci가 주어진다. (1 ≤ Ci www.acmicpc.net 풀이 방법 문제에서 핵심은 정렬과 그리디이다. 가방을 넣을 수 있는 가능한 무게로 오름차순으로 정렬한 후 수용가능한 무게가 낮은 가방부터 채워주어야 한다. 왜냐하면 만약 가능한 가방이 10, 5(무게) 이렇게 2개 있고 보석이 (5, 100), (7, 7) (무게, 가격) 이렇게 2개가 있다고 가정을 했을 때 10인 가방부터 채..

Algorithm 16:15:03

클라우드 보안

위협 에이전트 공격을 수행하는 능력이 있고, 위협을 가하는 개체 클라우드 보안 위협은 내부적 또는 외부적으로, 사람이나 SW 프로그램에 의해 발생할 수 있다. 익명 공격자 클라우드의 허가를 받지 않은, 신뢰할 수 없는 클라우드 서비스 소비자 일반적으로, 퍼블릭 네트워크를 이용해 네트워크 수준의 공격을 하는 외부 SW 프로그램의 형태로 존재함 악성 서비스 에이전트 클라우드 내에 오가는 네트워크 트래픽을 허가받지 않은 에이전트가 가로챌 수 있음 일반적으로, 손상을 가할 수 있거나 악의적인 로직을 보유한 서비스 에이전트 형태로 존재 신뢰할 수 있는 공격자 클라우드 소비자로서, 동일 클라우드 환경에 있는 IT 자원을 공유하고, IT 자원을 공유하는 클라우드 제공자와 클라우드 사용자를 목표로 부당한 IT 자원 사..

클라우드 사용 모니터링 매커니즘

모니터링 에이전트 서비스 에이전트 형태로 존재하며, 이벤트 기반 프로그램이다. 데이터 흐름을 투명하게 모니터링하고 분석하기 위해 기존 통신 경로상에 존재한다. 일반적으로 네트워크 트래픽 및 메시지 측정 지표를 실제로 측정하기 위해 사용한다. 1. 사용자는 클라우드 서비스에 요청 메시지를 보낸다. 2. 모니터링 에이전트는 메시지를 가로채서 클라우드 서비스를 계속진행하기 전에 관련 사용 데이터를 수집하고 로그를 DB에 저장한다. 3. 클라우드 서비스로 부터의 응답 메시지는 인터셉트되지 않고 사용자에게 전달된다 자원 에이전트 이벤트 중심의 상호 작용을 통해 사용 데이터를 수집하는 처리 모듈 가상 자원의 시작, 중단, 다시 시작, 성능 확장 등과 같이 미리 정의된 이벤트를 능동적으로 모니터링하여 사용량을 측정한..

클라우드 컴퓨팅 기본모델, 핵심기술

클라우드의 특징 IT 환경이 효율적인 클라우드가 되기 위해 필요한 특징 6가지 On-demand 형태의 IT 자원 사용 소비자는 언제든 원할 때에 자유롭게 클라우드 IT 자원에 접근 및 관리할 수 있다. 유비쿼터스 접근 소비자는 언제 어디서나 클라우드 IT 자원에 접근할 수 있다. 멀티테넌시 제한된 수의 자원을 다수의 사용자가 독립적으로 사용하는 것을 말한다. 가상화된 인스턴스를 각 사용자에게 제공하고, 각 사용자는 독집적으로 인스턴스를 사용한다. 멀티테넌시 기술을 기반으로 다수의 가상 자원 인스턴스를 폴링 하고, 필요에 따라 사용자에게 즉각 할당한다. 탄력성 변화하는 요구 사항을 충족하도록 컴퓨터 처리, 메모리 및 저장소 리소스를 신속하게 확장하거나 축소할 수 있는 기능 사용량 측정 클라우드 소비자가 ..

[프로그래머스] 네트워크 (Java)

출처 : https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 완전 탐색 + 그래프 탐색 방법으로 방문하지 않은 노드일 때 그 점부터 그래프 탐색을 하며 연결된 지점을 같은 네트워크로 묶고 answer를 +1 해주고 다시 완전 탐색으로 방문하지 않은 노드를 찾아 그래프 탐색을 하는 방식으로 해결했다. import java.io.*; import java.util.*; class Solution { static int N; static in..

Algorithm 2024.04.12

[백준] 단어 수학 1339번 (Java)

출처 : https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 풀이 방법 그리디로 풀어야 한다. 가장 큰 수를 만들기 위해 각 알파벳 자릿수를 계산해서 큰 거부터 9를 할당해 주면 된다. 알바벳을 계산할 때 제일 왼쪽부터 10을 곱하면서 계산하면 된다. import java.io.*; import java.util.*; public class Main { static int N; static int[] alphabet = new int[26];..

Algorithm 2024.04.11

[백준] 욕심쟁이 판다 1937번 (Java)

출처 : https://www.acmicpc.net/problem/1937 1937번: 욕심쟁이 판다 n × n의 크기의 대나무 숲이 있다. 욕심쟁이 판다는 어떤 지역에서 대나무를 먹기 시작한다. 그리고 그 곳의 대나무를 다 먹어 치우면 상, 하, 좌, 우 중 한 곳으로 이동을 한다. 그리고 또 그곳에 www.acmicpc.net 풀이 방법 dp로 풀어야 하는 문제이다. dp를 설정할 때 문제를 잘 나누어야 한다. dp를 나눌 때 이전 상황에 영향을 받지 않고 앞으로의 상황에만 영향을 받도록 문제를 나누었다. dp[y][x]를 y, x에서 최대로 이동할 수 있는지로 설정했다. dfs함수 안에서 이동 가능한 부분으로 이동할 때 ret의 값과 1 + dfs(ny, nx) 값 중 더 큰 값을 ret에 업데이트..

Algorithm 2024.04.11

[프로그래머스] 이모티콘 할인행사 (Java)

출처 : https://school.programmers.co.kr/learn/courses/30/lessons/150368?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 처음으로 할일율을 조절하는 그리디 방법을 생각했으나 할인율이 너무 높아도 안되고 너무 낮아도 안된다고 생각해서 dp 방식을 생각해 봤다. 하지만 dp방식도 이모티콘 개수에 따라, dp 배열이 너무 달려져 완전탐색 방식으로 풀어야겠다고 생각했다. 먼저 완전 탐색 방법의 시간 복잡도를 계산해 봤는데 할인이 4가지 경우 밖에 없고 이모티콘도 최대 7개 까지..

Algorithm 2024.04.10

도커 Container Layer의 내용을 장기적으로 저장하기

개요 컨테이너 실행 중에 생성/변경된 데이터는 container layer에 저장되며, 컨테이너가 삭제되면 container layer에 저장된 내용도 함께 삭제된다. 컨테이너 삭제 후에도 데이터를 유지하는 방법에 대해 알아보자 본론 Container Layer의 내용을 장기적으로 저장하는 방법에는 크게 2가지가 있다. 볼륨 마운트를 통해 로컬 파일 시스템과 컨테이너의 파일 시스템을 동기화하기 export 명령어를 사용해서 컨테이너의 이미지와 Container Layer의 내용이 모두 저장된 새로운 이미지를 생성하기 1. 컨테이너 볼륨 마운트 도커 호스트 파일 시스템의 특정 디렉터리를 컨테이너 파일 시스템의 특정 디렉터리로 매핑하자 마운트 되어 공유된 디렉터리는 컨테이너가 삭제된 이후에도 도커 호스트에 ..

도커 리소스 사용량 제한하기

개요 도커 컨테이너는 리소스(CPU, MEM 등)에 제한이 없다. 즉 도커가 구동하는 호스트 머신의 자원을 100% 사용할 수 있다. 이렇게 된다면 컨테이너의 리소스 사용량이 증가하게 된다면 Host PC에 영향이 갈 수도 있고 여러 애플리케이션 간에 영향을 미칠 수 있으므로 컨테이너의 리소스를 제한하는 방법에 대해 알아보자 본론 컨테이너가 사용하는 자원량 stats 명령을 통해 확인해 보자 --no-stream 제거 시 지속적으로 확인 가능 위 이미지와 같이 메모리 LIMIT가 호스트 메모리 용량과 같음을 알 수 있다. (약 8G) 메모리 사용량 제한을 update 명령을 사용해 변경을 할 수 있다. CPU 사용량 제한을 변경해 보자 --cpuset-cpus 옵섭을 사용해서 Host Pc의 CPU 중 ..