본문 바로가기
728x90
반응형

분류 전체보기325

[백준 1080, 2138][파이썬] 행렬, 전구와 스위치 (그리디 알고리즘) 백준 1080번과 2138번 모두 그리디 알고리즘으로 풀이가 비슷해서 같이 가져와보았다. 그리디 알고리즘은 욕심쟁이 알고리즘이라고도 하는데 현재 최선의 선택을 하는 것이다. 미래를 생각하지 않고 현재 선택할 수 있는 경우의 수 중 최선의 선택을 하는 것인데 반드시 최적의 해를 구할 것이라는 보장이 없다. 최적의 해를 구하지 못하더라도 근사값은 구할 수 있기 때문에 유용한 알고리즘이다. 그리디 알고리즘을 사용했을 때 최적의 해를 보장할 수 있으려면 다음과 같은 조건이 필요하다. 탐욕 알고리즘이 잘 작동하기 위한 조건은 탐욕스런 선택 조건(greedy choice property)과 최적 부분 구조 조건(optimal substructure)이다. 탐욕스런 선택 조건은 앞의 선택이 이후의 선택에 영향을 주지.. 2023. 6. 30.
[백준 10473][파이썬] 인간 대포 (우선순위 큐를 사용하지 않는 다익스트라) https://www.acmicpc.net/problem/10473 10473번: 인간 대포 입력은 한 개의 길찾기 문제를 표현한다. 첫 줄에는 두 개의 실수가 입력되며 각각은 당신이 현재 위치한 X, Y좌표이다. 두 번째 줄에는 목적지의 X, Y좌표가 실수로 입력된다. 이어지는 줄에는 대 www.acmicpc.net 다익스트라 알고리즘을 사용하는 문제이다. 우선 이 문제는 그래프를 주지 않았기 때문에 우리가 직접 그래프를 만들어야 한다. 주어진 정점은 시작점, 도착점, n개의 대포이다. 이 정점들의 모든 pair가 그래프의 간선이 된다. 즉 간선의 개수는 (n+2)의 제곱이 되는 것이다. 지금 이 생각까지 코드로 나타내보자. import sys INF=1e9 input=sys.stdin.readline.. 2023. 6. 29.
[Network] swtich와 VLAN 이더넷 스위치 frame을 받아서 MAC 주소를 기반으로 적절한 링크로 전달한다. 호스트는 스위치의 존재를 모르기 때문에 transparent하다. 또한 호스트는 스위치와 고유한 링크로 직접적으로 연결되어 있기 때문에 충돌이 발생하지 않는다. 이러한 특성 덕분에 동시에 여러 전송이 발생하더라도 충돌이 발생하지 않고 통신할 수 있다. 스위치 테이블 또한 가지고 있어서 어느 host가 어디에 연결되어 있는지 알 수 있다. 스위치 테이블의 경우 스위치가 받은 frame을 바탕으로 기록한다. 예를 들어 A 호스트로부터 frame을 받으면 1번을 통해서 받게 되는데 이를 통해 A 호스트의 MAC 주소는 1번과 연결되어 있다고 스위치 테이블에 기록하는 것이다. 그리고 나중에 목적지 MAC 주소가 A 호스트인 fra.. 2023. 6. 28.
[Docker] 도커 개념 및 사용법 프로젝트를 진행하면서 로컬에서 잘 작동하던 프로젝트가 서버에 배포하면 잘 작동하지 않을 수 있다. 수많은 원인이 존재하겠지만 라이브러리 버전이 다르다거나 네트워크 환경이 다르다거나 하는 이유가 있을 수 있다. 로컬 환경과 서버 환경의 차이로 인해 이러한 예상치 못한 문제가 발생하는 것을 방지하기 위해 컨테이너 방식이 존재한다. 컨테이너 방식을 사용하면 환경 자체를 배포할 수 있게된다. VM과 컨테이너 컨테이너와 자주 비교되는 것이 VM(Virutal Machine)이다. 둘 다 독립적인 환경을 가질 수 있고 환경을 이미지로 만들어 공유할 수 있다는 점에서 비슷하지만 약간의 차이가 있다. 우선 VM 방식은 host os 위에 여러 개의 guest os가 존재하고 각각의 guest os 위에 라이브러리, 애.. 2023. 6. 27.
728x90
반응형