전체 글
-
네트워크 전송 방식 (Unicast, Brodcast, Multicast, Anycast)Computer/Network 2024. 7. 22. 09:57
네트워크 전송 방식에서 흔히 브로드캐스트, 유니캐스트 등의 단어를 들어봤을 것이다.오늘은 각 방식의 대해서 정리해보려고한다. 유니캐스트 (Unicast)유니캐스트 전송이란 고유 주소로 식별된 하나의 네트워크 목적지에 1:1로 (one-to-one) 트래픽 또는 메시지를 전송하는 방식을 말한다.1:1 통신전송하는 프레임에 출발지 MAC 주소와 목적지 MAC 주소를 담는다.출발지에서 유니캐스트 방식으로 프레임을 전송한다.수신 받은 호스트들은 자신의 MAC주소와 프레임에 담긴 목적지 MAC주소를 비교한다.비교 결과가 같으면 프레임을 받아서 처리하고 같지 않으면 해당 프레임을 버린다.4번의 항목 덕분에 다른 PC들에서는 성능 저하가 일어나지 않는다.브로드캐스트 (Brodcast)브로드캐스트는 로컬 네트워크에 연..
-
[백준] 10431번 줄세우기Algorithm Study/Python 2024. 7. 17. 16:17
https://www.acmicpc.net/problem/10431 풀이이 문제는 오름차순으로 insertion sort를 물어보는 문제와 동일하다. 새로 입력받은 숫자를 기존 리스트의 맨 끝 idx부터 비교하여입력받은 숫자보다 큰 경우 idx를 1칸씩 당겨가면서 비교한다.그리고 입력받은 숫자보다 작은 숫자가 나오면 그 뒤에 새로 입력받은 숫자를 삽입한다.이 경우 기존 숫자들은 1칸씩 밀리게 되기 때문에 이 때 이동이 발생하는 회수를 묻는 문제이다.문제의 테스트 케이스는 최대 1000개 입력 받는 숫자는 20이기 때문에 20*20*1000으로 400000정도 연산이 수행되기 때문에 위 방법으로 풀어도 요구 시간인 1초안에 풀 수 있게된다. data = list(map(int, input().split(..
-
[백준] 1009번 설탕 배달Algorithm Study/Python 2024. 7. 11. 23:51
https://www.acmicpc.net/problem/1009 풀이이 문제를 파이썬으로 풀 때는 직접 a**b 를 구한 다음 % 10을 해서 푸는 간단한 방법도 있지만파이썬 함수인 pow(A, B, 10) 을 하게되면 바로 (a^b)%10의 결과물을 얻을 수 있게 된다.%의 결과가 0인 경우만 10번 컴퓨터가 수행하는 것으로 출력을 변경해주면 간단하게 풀 수 있다.n = int(input())for i in range(n): a, b = map(int, input().split()) temp = pow(a,b,10) if temp == 0: print(10) else: print(temp)하지만 이 방법이 아닌 다른 방법으로 푸는 것이 이 문제..
-
[백준] 2839번 설탕 배달Algorithm Study/Python 2024. 7. 1. 23:23
https://www.acmicpc.net/problem/2839 풀이이번 문제는 copliot을 활용하여 문제를 풀어봤다.단순한 문제라면 질문을 잘하면 코드를 만들 수 있을 것 같았다.결과는 생각보다 놀랍게 2번의 질문 만으로 완성된 코드를 만들어냈다. 입력에 대한 부분은 일부 수정이 필요했지만 결과물을 잘 만들어서 생각보다 놀라웠다.먼저 copliot에게 질문을 하기 위해서는 이 문제가 원하는 요구사항을 이해해야한다.위 문제에서는 3과 5를 이용하여 입력받은 숫자를 만들 수 있는지 필요하고 그 숫자를 만들기 위해서는 3과 5를 최소로 사용한 값이 필요하다. 또 만들 수 없는 경우에는 -1을 출력하게 하였다. 그래서 위 조건으로 아래처럼 코드를 생성하였다.내가 입력 받은 숫자 N이 3과 5의 합으로..
-
RDMA (Remote Direct Memory Access)Computer/CS 2024. 6. 20. 10:33
RDMA(원격 직접 메모리 액세스, Remote Direct Memory Access)는 네트워크 상의 한 컴퓨터에서 다른 컴퓨터의 메모리에 직접 접근할 수 있게 해주는 기술입니다. 이 기술은 CPU의 개입 없이 네트워크 데이터 전송을 수행하므로, 낮은 지연 시간과 높은 대역폭을 제공합니다. RDMA는 주로 고성능 컴퓨팅(HPC), 데이터 센터, 클라우드 컴퓨팅 환경에서 사용됩니다.RDMA의 주요 특징낮은 지연 시간(Latency): CPU의 중재 없이 메모리 간의 직접 전송이 가능하므로 지연 시간이 매우 짧습니다.높은 대역폭(Bandwidth): 데이터 전송이 빠르고 효율적입니다.낮은 CPU 사용률: CPU 개입이 최소화되어 다른 작업을 처리할 수 있는 여유가 생깁니다.제로-카피(Zero-Copy): ..
-
[백준] 1940번 주몽Algorithm Study/Python 2024. 3. 22. 19:12
https://www.acmicpc.net/problem/1940 1940번: 주몽 첫째 줄에는 재료의 개수 N(1 ≤ N ≤ 15,000)이 주어진다. 그리고 두 번째 줄에는 갑옷을 만드는데 필요한 수 M(1 ≤ M ≤ 10,000,000) 주어진다. 그리고 마지막으로 셋째 줄에는 N개의 재료들이 가진 고 www.acmicpc.net 풀이 2개의 숫자를 더해 특정 숫자 M이 나오는지 확인하는 문제이다. N은 최대 15000이고 모든 경우의 수를 구하게 되면 15000 * 15000 / 2 정도가 나오기 때문에 시간 초과가 발생하게된다. 즉 더욱 단순하게 풀 수 있어야 하는데 이런 경우에는 투 포인터를 이용하여 양쪽에서 검사하면 쉽게 풀 수 있다. 입력 받은 숫자를 정렬한 뒤 양쪽에서 확인하면 현재 숫자..
-
[백준] 31416번 가상 검증 기술Algorithm Study/Python 2024. 3. 22. 19:01
https://www.acmicpc.net/problem/31416 31416번: 가상 검증 기술 현대오토에버의 가상 검증 기술은 차량·시스템·제어기를 가상화하고 가상 주행 환경, 검증 도구 등을 제공해 기능별 검증, 기능 간 연계 검증, 시스템 단위 검증을 하드웨어 없이 가상으로 진 www.acmicpc.net 풀이 입력의 테스트 케이스가 총 1000, 테스트의 갯수가 100, 최대 시간이 100이기 때문에 최대 100 * 100 * 1000의 시간으로 풀더라도 1억보다 작기 때문에 1초 안에 해결이 가능하다. 즉, 단순 구현으로도 수학적인 방법으로도 풀이가 가능한 문제이다. 먼저 단순 구현으로 풀어보겠다. 단순 구현으로 풀기 위해 실제 시간이 1씩 증가하는 방식을 사용하여 구현했다. while 문을 ..
-
[백준] 9655번 돌 게임Algorithm Study/Python 2024. 3. 17. 00:00
https://www.acmicpc.net/problem/9655 9655번: 돌 게임 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. www.acmicpc.net 풀이 두 사람이 돌을 1개 또는 3개씩 가져가면서 마지막 돌을 가져가는 사람이 이기는 게임이다. 두 사람이 1개 또는 3개의 돌을 가져갈 수 있는 경우는 1/1, 1/3, 3/1, 3/3 이고 서로 무조건 이기기 위한 선택을 하기 때문에 N번째에서 이긴 사람이 N+2, N+4, N+6에서도 모두 이기게 된다. 즉 홀수, 짝수로 나뉘어져 승리하는 인원이 정해진다. DP 기본적인 문제를 다시 풀려고 선택하였지만 단순한 문제가 되어버렸다. 전체 코드 N = int(input()) if N % 2 == 0: print('CY..