2839 - 설탕 배달
난이도: 실버 4 날짜: 2023년 2월 4일 상태: Correct 추가 검토 여부: No solution 5와 3의 최소공배수인 15를 사용하여 문제를 풀이했다. 어떤 수가 3으로 나누어 떨어지지 않을 때 그 수에서 5를 빼거나 10을 뺀 수도 3으로 나누어 떨어지지 않는다면 해당 수는 $3x + 5y$의 형태로 나타낼 수 없는 수이다.(x, y는 정수) 봉지를 최소한으로 사용하는 경우는 5kg짜리 봉지를 최대한으로 사용한 경우이다. 이 경우를 찾기 위해 어떤 수가 3으로 나누어 떨어지고 …
1966 - 프린터 큐
난이도: 실버 3 날짜: 2023년 2월 3일 상태: Correct 추가 검토 여부: Yes solution deque와 priority_queue를 사용했다. deque에는 pair<int, int>가 들어간다. pair자료구조는 vector, algorithm헤더에 포함되는 자료구조이다. pair.first는 priority정보를, pair.second는 index정보를 저장한다. priority_queue는 중복을 허용하는 max heap으로 동작할 수 있으므로 이를 dequ…
1978 - 소수 찾기
난이도: 실버 5 날짜: 2023년 2월 3일 상태: Correct 추가 검토 여부: Yes solution N개의 수를 2부터 $\sqrt{N}$까지 1씩 증가시켜가며 나누어 항상 나머지가 존재한다면 소수, 그렇지 않다면 합성수로 분류한다. 1은 소수도 합성수도 아니므로 예외처리한다. 굉장히 간단한 문제이고, 위의 알고리즘으로도 제한시간 내에 문제없이 해결 가능하지만 위의 알고리즘보다 세련된 알고리즘을 찾을 수 있을 것 같다. code #include <iostream> #in…
2108 - 통계학
난이도: 실버 3 날짜: 2023년 2월 3일 상태: Correct 추가 검토 여부: No solution N개의 입력 정수에 대해 산술평균, 중앙값, 최빈값, 범위를 구하는 문제이다. 입력과 동시에 sum을 계산하여 산술평균을 구할 수 있다. 마찬가지로 입력과 동시에 입력의 최댓값 및 최솟값을 구하여 범위를 바로 구할 수 있다. priority_queue를 minheap으로 구현하여 증가하는 순서대로 정렬한다. 이후 N/2번만큼 pop연산을 통해 중강값을 구할 수 있다. 최빈값을 구하기 위…
2164 - 카드 2
난이도: 실버 4 날짜: 2023년 2월 3일 상태: Correct 추가 검토 여부: No solution deque자료구조를 사용하여 문제 상황을 그대로 시뮬레이션 하면 시간제한에 걸리지 않게 문제를 해결할 수 있다. code #include <iostream> #include <deque> using namespace std; int main() { int N; cin >> N; deque<int> deque; f…
1920 - 수 찾기
난이도: 실버 4 날짜: 2023년 2월 2일 상태: Correct 추가 검토 여부: No solution c++ stl : set을 이용했다. set의 insert() method를 사용하여 중복 없이 입력받았다. set의 find() method를 사용하여 범위 안에서 수가 존재하는지 판단했다. 로직은 맞았으나 cout, cin의 사용으로 인해 시간초과가 떴다. 이를 printf, scanf로 바꾸니 정답 처리되었다. ssh로 띄운 리눅스에서 긁어다 바로 백준 제출창에 붙여버리면 컴파일 …
1929 - 소수 구하기
난이도: 실버 3 날짜: 2023년 2월 2일 상태: Correct 추가 검토 여부: Yes solution 더 좋은 알고리즘이 있었던 것으로 기억하지만 에라토스테네스의 채 알고리즘의 단순 구현 버전으로 풀었다. 해당 범위 내에서 $start$부터 $\sqrt{end}$까지 1씩 증가시켜가며 나머지를 기반으로 소수 여부를 판별했다. 본 문제는 이 알고리즘으로도 해결되었으나, 이보다 훨씬 진보된 소수 탐색 알고리즘을 본 기억이 난다… 후에 참고하자 1은 소수가 아닌 것을 깜빡하고 1에 대한 예…
1874 - 스택 수열
난이도: 실버 3 날짜: 2023년 2월 1일 상태: Correct 추가 검토 여부: No solution stack자료구조를 사용하여 원하는 입력받은 수열을 만드는 문제이다. 아래와 같이 경우의 수를 나누어 해결했다. 스텍이 빈 경우 → stack에 규칙에 따라 push 스텍에 원소가 있는 경우 stack top이 조건을 충족하는 경우 → pop or push stack top이 조건을 충족하지 않는 경우 → break cout << endl;의 구문에서 endl은 버…
1654 - 랜선 자르기
난이도: 실버 2 날짜: 2023년 1월 31일 상태: Correct 추가 검토 여부: Yes solution 이진 탐색을 이용하여 조건을 충족하는 가장 큰 수를 탐색하는 문제이다. 이진 탐색 구현 과정에서 입력값에 대한 형을 명확히 설정해야 한다. 초기 코드에서 int를 써서 오버플로우가 발생하였고 이를 long long int로 변경하니 정상 동작하였다. 무한 루프에 빠져 시간 초과가 발생하는 경우를 잘 생각해야 한다. step-2의 while문에서 무한 루프가 발생하였다. 양 끝…
ANACONDA 환경설정
ANACONDA란? ANACONDA는 Python 과 R에서 패키지 개발 및 관리를 용이하게 하기 위한 가상 환경을 제공한다. 다음과 같은 경우 ANACONDA가 매우 효율적이다. 파이썬의 버전을 자주 바꿔야 하는 경우 패키지 이름이 중복되는 경우 아나콘다는 컨테이너로 작동하며 환경 설정 후 사용 가능하다. 이때 파이썬 버전을 설정 가능하며 이 환경에서의 pip명령 등은 다른 컨테이너에 영향을 주지 않는다. ANACONDA 설치 터미널에서 패키지 매니저를 활용하여 설치할 수도 있지만 그냥 …
YOLO Quickstart
YOLO(You Look Only Once)란? 딥러닝을 이용한 Object Detection, Image Segmentation 프로그램 Ultralytics에서 개발했다. 라이센스는 GPL-3.0라이센스이다. 주의할 것 yolov5/LICENSE at master · ultralytics/yolov5 본 글은 Ultralytics YOLOv8 Docs를 기반으로 작성되었다. Ultralytics YOLOv8 Docs YOLO Quickstart Environment Req…
Mobile IPv4
RARP, BOOTP, DHCP 정리: Done 정리일: 2022년 12월 7일 RARP : Reverse Address Resolution Protocol - RFC903 시스템이 booting될 때, 보통은 IP address를 저장해 놓은 파일로부터 IP주소를 얻는다. 그렇다면 저장 장치가 없는 시스템에서는 어떻게 IP주소를 얻을 수 있을까? MAC주소(하드웨어 주소) 는 고유하기 때문에 MAC에 대응하는 IP주소를 lookup을 통해 얻을 수 있다.(lookup table??) MAC주…
TCP
Transmission Layer 기본적으로 네트워크 스택의 각 계층은 Independent이다. IP 와 TCP는 상호간의 “talk”이 존재한다. ⇒ Cross-Layer 지연 보장, 대역폭 보장은 지원하지 않는다. TCP (Transmission Control Protocol) Realiable, in-order(순차적인) byte-stream delivery process to process → 라우터는 TCP를 사용하지 않는다. Congestion control 지원(sender) …
CIDR
CIDR(Classless Inter Domain Routing) EGP(Exterior Gateway Protocol)에서 CIDR을 사용하여 IP를 분배한다. RFC1519에서 CIDR의 개념을 설명한다. Problem of IPv4 “class” 대부분의 경우 class A(16M)는 과하고, class C(255)는 부족하다. 조사에 따르면 class B의 경우도 절반 이상의 class B 네트워크의 host수가 50 미만이었다… “class”개념의 탈피가 필요하다. CIDR의 개념…
Routing
Forwarding table and Routing table Forwarding table 패킷을 포워딩하는데 사용된다. 포워딩 기능을 수행하기에 적합한 정보를 포함해야 한다. Network Number에 대응하는 outgoing interfafce로의 매핑 다음 hop으로의 전송을 위한 MAC address Routing table 라우팅 테이블은 라우팅 알고리즘에 의해 사전에 구축된 테이블이다. Network Number와 Next hop을 매핑한다. Distance vector a…