호우동의 개발일지

Today :

article thumbnail
[Java/C++] 프로그래머스 Level 3 - 파괴되지 않는 건물
Algorithm/Programmers 2023. 9. 17. 17:23

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/92344#qna 알고리즘 스터디 끝나니까 자연스럽게 알고리즘을 안 풀게 되네.. 하루에 하나는 아니더라도 주 3회 정도는 꾸준히 풀어야 하는데, 일주일 만에 푸는 것 같다. 알고리즘에 좀 더 신경 써야겠다. 문제 핵심 및 풀이 쉬운 문제? 문제 이해는 쉽다. 그리고 푸는 방법도 보기엔 간단해 보인다. 그냥 (r1, c1) ~ (r2, c2) 직사각형에 포함된 모든 인덱스에 degree를 더해주면 된다. 근데 이 문제의 제한사항을 보면 그 사용은 사용하지 못하는 것을 알 수 있다. 행과 열의 크기는 최대 1,000까지 가능하다. 즉 1000*1000 짜리 맵이 나올 수 있다. 또한 처리해야 ..

article thumbnail
[Network] 스위치 구조 : 입/출력 큐잉의 발생 원인 및 버퍼링의 사용

큐잉과 패킷 손실 패킷 큐는 입력 포트와 출력 포트 모두에서 형성 가능 큐의 위치와 범위(입/출력 포트 큐)에 영향을 주는 요인 트래픽 로드 스위치 구조의 상대 속도 및 라인 속도 큐가 커질수록 소모되는 메모리의 양이 많아짐 → 도착하는 패킷을 저장할 수 있는 메모리가 없을 때 패킷 손실(packet loss) 발생 패킷 손실 시나리오 가정 입력 및 출력 라인의 속도(전송률)은 모두 초당 R(line) 패킷으로 동일 N개의 입력 포트와 N개의 출력 포트가 존재 모든 패킷의 고정 길이가 같고,동기식으로 입력 포트에 도착 임의의 링크 상에서 패킷 송신 시간과 수신 시간은 동일 시간 간격 동안 0 또는 하나의 패킷이 입력 링크상에 도착 가능 R(switch) : 패킷이 입력 포트에서 출력 포트로 이동할 수 있..

article thumbnail
[Java/C++] 프로그래머스 Level 3 - 보행자 천국
Algorithm/Programmers 2023. 9. 12. 01:24

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/1832 2017년도 그러니까 6년 전쯤에 카카오 코딩 테스트에서 나온 문제 현재의 카카오 코딩테스트 출제 스타일이 다른 느낌 요즘은 DP 잘 안 나온다던데.. 문제 핵심 및 풀이 DFS나 BFS로 풀면 시간초과 아직까지 이해가 가지 않는 부분이다. DFS의 최적의 시간복잡도는 O(V+E)이다. 그래서 문제 조건상 최대 500 * 500 * 2이기 때문에 DFS를 돌려도 시간초과가 뜰 리가 없다고 생각했다. 그런데 해당 방법은 시간초과가 뜨고 다른 방법을 사용해야 했다. 내 상식으로는 이해할 수가 없는데.. 아시는 분..? DP로 문제 접근 두 번째로 생각해 볼 수 있는 가능성은 DP였다. ..

article thumbnail
티스토리 사진 비율 조절하는 쉬운 방법(원본 손실X)
Etc 2023. 9. 11. 11:54

썸네일 1:1 비율 썸네일이 제대로 보이기 위해서는 썸네일 사진을 1:1 비율로 바꿔야 한다. 이러한 작업은 엄청 귀찮다. 그래서 여러 가지 방법을 사용해 봤다. 여러 실험을 통한 결과, 아래에 서술할 방법이 가장 편하고 쉬운 것 같아서 소개한다. 작업 환경 본 포스팅은 맥북 기준으로 작성되었다. 하지만 스크린샷 기능만 있으면 돼서 Window나 Mac이나 상관없다. 프로그램도 스크린샷을 찍을 수 있는 것만 있다면 그 외에는 아무것도 필요 없다. 어차피 비율 조절하는 작업은 티스토리 내에서 할 것이다. 유의 사항 이 방법은 원하는 게시물의 썸네일 비율을 변경하는 것에 유용한 것이다. 그러니까 티스토리 맞춤형이기 때문에 다른 쪽에서는 이게 편할지 어떨지 모르겠다. 비율 조절하는 방법 1. 비율 조절하고자 ..

article thumbnail
[Network] 라우터 핵심 : 스위치 구조의 3가지 스위칭 기술 정리

스위칭 스위치 구조가 라우터의 핵심인 이유 → 패킷이 입력 포트에서 출력 포트로 실제로 스위칭(포워딩)되는 구조를 통과하기 때문 세 가지 스위칭 기술 1. 메모리를 통한 교환 CPU(라우팅 프로세서)를 직접 제어해서 입력 포트와 출력 포트 사이에 패킷 스위칭을 하는 방법 가장 단순한 초기의 라우터이자 사용한 전통적인 컴퓨터 입력 포트와 출력 포트는 전통적인 운영체제에서 전통적인 I/O 장치처럼 작동 동작 과정 패킷이 도착하면 입력 포트는 라우팅 프로세서에게 인터럽트를 보냄 패킷을 프로세서 메모리에 복사 라우팅 프로세서는 헤더에서 목적지 주소를 추출 및 포워딩 테이블에서 적절한 출력 포트를 찾음 이후, 라우팅 프로세서는 다음 패킷을 출력 포트의 버퍼에 복사한다. 메모리 대역폭이 초당 최대 B인 패킷을 메모..

article thumbnail
[Network] 라우터의 입력/출력 포트 기능과 목적지 기반 전송 요점

입력 포트 처리 입력 포트의 라인 종단 기능과 링크 계층 처리 → 라우터의 개별 입력 링크와 관련된 물리 계층 및 데이터 링크 계층을 구현 입력 포트에서 수행되는 검색 ← 라우터 동작의 핵심 포워딩 테이블을 사용하여 도착 패킷이 스위치 구조를 통해 전달되는 출력 포트를 검색 포워딩 테이블의 사용 및 갱신 포워딩 테이블은 라우팅 프로세서에서 계산되거나 갱신됨 또는 원격 SDN 컨트롤러에서 수신됨 위의 라우팅 프로세서는 다른 네트워크 라우터의 라우팅 프로세서와 상호작용하기 위해 라우팅 프로토콜을 사용한다. 포워딩 테이블은 라우팅 프로세서에서 입력 라인 카드로 복사된다. 각 라인 카드에서 위와 같은 섀도 복사본을 사용할 때의 이점 → 패킷 단위로 중앙 집중식 라우팅 프로세서를 호출하지 않게 됨 → 병목 현상을..

article thumbnail
[Network] 라우터 내부 구조와 관련된 포워딩(forwarding) 정리

라우터 내부 구조 상위 레벨의 관점에서 본 일반적인 라우터 구조 입력 포트(input port) 여기서의 포트(port) → 물리적인 입출력 라우터 인터페이스를 의미 네트워크 애플리케이션 및 소켓과 관련된 소프트웨어 포트와는 명백히 다름 가장 중요한 기능 - 검색 기능 이는 가장 오른쪽 박스에서 발생 포워딩 테이블을 참조하여 도착된 패킷이 스위치 구조를 통해 라우터 출력 포트를 결정 → 제어 패킷은 입력 포트에서 라우팅 프로세서로 전달된다. 맨 왼쪽 박스와 출력 포트의 맨 오른쪽 박스 → 라우터로 들어오는 입력 링크로, 물리 계층 기능을 수행 들어오는 링크의 반대편에 있는 링크 계층과 상호 운용을 하기 위해 필요한 링크 계층 기능을 수행 이 링크 계층 기능은 입력 및 출력 포트에서 미들박스로 표시된다. ..

[Network] 네트워크 서비스 모델 요점 정리

네트워크 서비스 모델 네트워크 서비스 모델 : 송수신 호스트 간 패킷 전송 특성을 정의 네트워킹에 관련된 다양한 의문은 네트워크 계층이 제공하는 서비스 모델에 따라 결정됨 트랜스포트에서 네트워크 계층이 목적지까지 패킷을 전달하는 걸 믿을 수 있는가? 여러 패킷이 전송될 때 동일한 순서로 수신자의 트랜스포트 계층에 전달될 수 있는가? 네트워크가 네트워크 혼잡에 대한 피드백을 제공할 수 있는가? 송신 호스트와 수신 호스트에서 트랜스포트 계층을 연결하는 채널의 추상적인 관점이란? 네트워크 계층이 제공할 수 있는 서비스 보장된 전달 패킷이 출발지 호스트로부터 목적지 호스트까지 도착하는 것을 보장하는 서비스 지연 제한 이내의 보장된 전달 패킷의 전달과 더불어 호스트 간의 특정 지연 제한 안에 전달함을 보장하는 서..